Problème Framework

Résolu
yumal Messages postés 3 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 18 mars 2010 - 16 mars 2010 à 09:48
yumal Messages postés 3 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 18 mars 2010 - 18 mars 2010 à 18:16
Bonjour à tous,

Je programme sous Visual Studio.Net 2003 Fr ‐ mais je suppose que le problème est identique pour les versions suivantes ‐ je souhaiterais savoir comment faire pour obtenir un exécutable autonome, à savoir ne nécessitant pas l’installation préalable du framework.
En fait, peut‐on incorporer lors de la compilation du projet les dll du dotnetfx afin de n’avoir au final qu’un seul fichier exe complètement autonome ?

Merci d'avance pour vos réponses.

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 mars 2010 à 12:25
impossible

ou bien change de techno (c++ ...)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 mars 2010 à 14:18
En fait, peut-on incorporer lors de la compilation du projet les dll du dotnetfx afin de n'avoir au final qu'un seul fichier exe complètement autonome ?


il a effectivement existé des technique du temps de VS.Net 2003 et donc du framework .Net 1.1, pour intégrer seulement les dlls necessaires du framework directement dans l'executable. Elle existe probablement encore.
D'après mes essais à l'époque à integrer entre 80 et 95% du framework suivant les projets même les plus simples et générait des exe de plusieurs dizaine de Mo voire centaine.

Sachant que de nous jours toutes les machines XP régulièrement et correctement mises à jours possède au moins de le framework .Net 2.0 souvent le 3.0 installés automatiquement via les mises à jours ou les derniers services pack, pour Vista, les fx2.0 et 3.0 font partie intégrante du système, pour Seven, sans vouloir dire de bétises, je crois que le fx 3.5 est automatiquement installé avec le système.
Il n'y a aucun intéret à intégrer le framework dans l'executable.

Au pire il suffit de l'installer sur la machine s'il manque, les pack de redistributions sont librement téléchargeable sur internet, ou sinon peuvent être intégrés dans le pack d'instalation du logiciel si tu en fait un. Ca prend de 3à 5 min à installer, et ça s'installe qu'une fois, c'est ensuite valable pour tous les logiciels .Net, y compris des logiciels d'éditeurs que tu pourrais acheter dans le commerce.


A l'attention des admins systèmes un peu frileux, je n'ai encore jamais rencontrer aucun problèmes dû à l'installation d'un framework .Net sur une machine.



[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 mars 2010 à 15:29
surtout que si tout le monde joue a intégrer le framework, bonjour l'espace disque occupé par le framework en n exemplaires ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 mars 2010 à 18:25
Vérification faite, je confirme que le framework n'est toujours pas inclus, ni dans Vista, ni dans seven

Je ne retrouve pas les documents officiel, mais normalement Vista inclu le framework 2.0 et 3.0, le SP1 amène le 3.5, Seven inclu en natif le 3.5 (et donc aussi le 2.0 et 3.0)
Quant à XP, le framework 2.0 a été intégré courant Janvier 2008 si mes souvenirs sont bon via Windows Update et un mise à jour importante (à condition évidemment qu'elles n'aient pas été désactivées)

Ceci dit, visual studio.net 2003 permet de faire une copie locale des "références" nécessaires ...Malgré la copie de ces dlls dans le même dossier que l'exécutable, ce dernier ne fonctionne toujours pas sans la présence du framework.

Tu ne peux pas te contenter de simplement copier les dll correspondantes aux références que tu vois apparaitre dans ton projet.
D'une part parce que, par exemple, une assembly comme System.Data n'est pas contenue uniquement dans System.Data.dll, mais peut-être répartie dans plus d'une 10ène de dll.
D'autre part, parce que le framework est un outil puissant, complet et complexe et qu'il ne se résume pas de simple dll intégrant les classes correspondantes. Il est extrement imbriqué de telle sorte que telle dll va aussi dépendre aussi de telle autre dll, qui va dépendre de telle autre ..., qui va dépendre..., qui va dépendre, .....

Il est nécessaire d'utiliser des outils spécifiques pour déterminer qu'elles sont la totalité des dll nécessaires à ton projet.
Et comme je te disais auparavent, de mes tests du temps de VB.Net 2003, même sur des projets extremements simples, je ne suis jamais descendu en dessous de 80% du framework intégré

Alors 80% x fois pour chaque logiciel, ou 100% une seule fois pour l'ensemble du système, le choix est vite fait

Pour info, si le pack de redistribution du framework 2.0 fait 23Mo, une fois installé, il dépasse les 100Mo sur le disque. Je sais que Go de disque n'est pas cher en ce moment, mais ce n'est pas une raison pour gaspiller.

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yumal Messages postés 3 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 18 mars 2010
17 mars 2010 à 17:53
Vérification faite, je confirme que le framework n'est toujours pas inclus, ni dans Vista, ni dans seven, ni dans leurs services packs respectifs et ce contrairement aux promesses de Microsoft suite aux nombreuses réclamations des développeurs.

Ceci dit, visual studio.net 2003 permet de faire une copie locale des "références" nécessaires à un projet sous la forme de fichiers dlls lors de la compilation de l'exécutable.
Ces dlls sont celles que l'on retrouve dans le framework et uniquement celles dont l'application a besoin. Par exemple,lors de la compilation d'une application standard, les dlls ainsi créées (System.dll, System.Data.dll, System.Drawing.dll, System.Windows.Forms.dll, System.XML.dll) ne pèsent que 516 ko, ce qui n'est vraiment pas un inconvenient.

Malgré la copie de ces dlls dans le même dossier que l'exécutable, ce dernier ne fonctionne toujours pas sans la présence du framework.

Par conséquent, si visual studio.net permet de générer ces dlls et comme j'ai besoin d'obtenir un exécutable autonome sans pour autant redistribuer le framework, quelle est la solution qui permette de faire appel à ces dlls si je les compile dans l'exécutable sous la forme de ressources incorporées ?

Merci d'avance.
0
yumal Messages postés 3 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 18 mars 2010
18 mars 2010 à 18:16
Si la possibilité d'incorporer les composants du framework dans l'exécutable de mon application semble faisable mais que c'est synonyme de + 100 Mo, cette possibilité n'est pas très satisfaisante.

En fait, visual studio.net m'a été conseillé par des développeurs lorsque j'ai commencé à programmer.
Aujourd'hui, je prépare une VAE du BTS Développeur d'applications et pour agrémenter mon dossier, j'ai une revue qui accepte de distribuer sur leur CD quelques-unes de mes applications freewares, mais tu sais comme moi que les conditions sont de faire light et d'être autonome de préférence.

Ceci étant, je n'ai pas beaucoup de temps mais je peux éventuellement les réécrire avec un autre logiciel de programmation, à condition d'en trouver un gratuit et de préférence francophone. Si tu en connais qui compile des exécutables autonomes et qui utilise un langage qui me soit familier (équiv. VisualC, VisualC++ ou VisualBasic), je suis preneur!

Merci encore pour les réponses !
0
Rejoignez-nous