web-dev-qa-db-fra.com

Façons de déployer des applications console en C #

J'ai une application de console relativement complexe qui repose sur plusieurs DLL. Je voudrais "expédier" ceci dans la meilleure forme. Ma méthode préférée serait un fichier exe avec toutes les dépendances intégrées (pas très gros, environ 800K). Une autre chose à faire serait de compresser le contenu du dossier "Debug" et de le rendre disponible, mais je ne suis pas sûr que tout sera disponible comme cela (toutes les dépendances seront-elles résolues simplement en compressant le dossier de débogage?)

Quelles sont les pratiques fiables pour déployer des applications console écrites en C # à l'aide de VisualStudio 2008?

39
Dervin Thunk

Si vous copiez simplement les fichiers Foo.exe, dlls et Foo.exe.config, tout ira bien. Jetez un coup d’œil à ce qui se trouve dans le dossier de débogage, par contre - vous (probablement) ne voulez pas envoyer les fichiers .pdb, ou Foo.vshost.exe. Y a-t-il autre chose? Si des éléments marqués comme Contenu sont copiés dans le dossier de sortie, vous en aurez également besoin.

Vous pourriez utiliser ilmerge pour mettre toutes les dépendances dans un seul fichier exe, mais je suis un peu méfiant de cette approche - je resterais avec les dlls exe + dependency.

40
Jon Skeet

Vous devriez examiner setup projects dans Visual Studio. Ils vous permettent de configurer des dépendances et d'inclure les DLL dont vous avez besoin. Le résultat final est un fichier setup.exe et un programme d'installation MSI.

Voici un walkthrough qui devrait aider.

12
brien

OU vous pouvez utiliser un fichier Zip auto-extractible. Regroupez tous les fichiers normaux (.exe, .dll, .config et tout le reste) dans un fichier Zip. Effectuez une extraction dans un répertoire temporaire et définissez le programme d'exécution sur extraction comme étant le fichier exe de la console. 

2
Cheeso

Vous pouvez utiliser les installateurs Wix pour le regrouper. Pour les applications console, DLL + dépendances exe + dépendances, les compresser suffit.

0
alrightyy

Créez un projet d'installation dans VS08 et ajoutez-lui la sortie principale du projet d'application de la console, ce qui résout les dépendances et les conditionne dans un fichier .msi

0
SpaceghostAli