2010-07-23 10 views
6

Je développe une application en C# avec MSVC 2010 Express, avec Forms/WPF/etc.Déployer l'application .NET (C#) exe sur les postes de travail

L'application consiste en quelques assemblys privés (peut-être des DLL) et un fichier .exe. Il utilise les fonctionnalités .NET 4. Comment puis-je déployer cette application sur d'autres ordinateurs? Bien sûr, s'ils ont .NET 4, je peux juste envoyer un fichier zip de .exe avec .dlls et cela fonctionne. Mais s'ils n'ont pas .NET du tout (sur machine Win XP)? Ou peut-être qu'ils ont une version inférieure de .NET? Dois-je les pointer pour installer .NET à partir d'Internet ou l'empaqueter avec mon application ou quoi?

Merci

+0

Lorsque vous avez terminé de créer le package d'installation, il est préférable de le tester sur un ordinateur virtuel e pour vérifier comment cela fonctionne dans différents scénarios. –

Répondre

11

Vous devez créer un package d'installation. Si vous utilisez les versions express de Visual Studio, vous pouvez utiliser des outils gratuits comme WiX ou Inno Setup. WiX est peut-être une option difficile au départ, mais elle a beaucoup de flexibilité. Il existe des tutoriels et des exemples de projets à modifier pour les adapter à vos besoins. http://www.tramontana.co.hu/wix/

Ces outils créent des programmes d'installation capables de vérifier si une certaine version de .NET Framework est installée sur l'ordinateur de l'utilisateur, entre autres conditions. Vous pouvez également inclure le redistribuable .NET dans votre package ou indiquer à l'utilisateur de le télécharger et de l'installer.

+0

+1 pour WiX. Vous devriez certainement le préférer aux projets de déploiement Visual Studio, c'est beaucoup plus puissant et beaucoup plus facile à intégrer dans un processus de construction automatisé. –

+0

WiX est bien quoi que ce soit, mais les versions actuelles ne sont pas d'une aide pour le problème de l'OP qui est de savoir comment installer le framework avant d'installer l'application. Je sais que WiX 3.5 va nous aider, mais je ne pense pas qu'il soit encore prêt pour un déploiement pré-officiel. –

+0

Quelle est la taille. NET redistribuable et comment je l'obtiens d'où? – zaharpopov

1

Oui, vous devez les désigner pour installer .NET. Sinon, il ne sera pas possible pour eux d'exécuter votre application.

13

Il existe un déploiement en une seule fois à partir de Microsoft. Il automatise la plupart des tâches, y compris s'assurer que vous avez la bonne version .Net et mettre à jour l'application si une nouvelle version de votre application est disponible.

+3

Vous devez également indiquer que ClickOnce va installer le framework .NET et d'autres dépendances (par exemple SQL Server Express) si nécessaire. –

+1

est-ce disponible dans l'édition express? –

2
+4

Pour sauver des gens en cliquant sur ce lien juste pour trouver ce qu'il pointe, il est à la "Comment: distribuer le .NET Framework avec un projet de déploiement Visual Studio .NET" Microsoft KB article de 2007. – MZB

0

oui! vous devez donner quelques instructions générales sur les conditions préalables pour exécuter votre logiciel et en ce que vous pouvez mentionner la version Framework 3.5 ou 4.0 et d'autres utilitaires dont vous avez besoin.

s'il vous plaît se référer ce document pour le choix d'une stratégie de déploiement dans Visual Studio 2010 peut cela peut vous aider http://msdn.microsoft.com/en-us/library/e2444w33.aspx

1

Vous ne dites pas ce type de clients qu'ils sont (vous font une petite application pour vos amis utilisez ou payez-vous des clients), mais quel que soit le cas, je suis toujours complètement contre l'envoi d'un fichier zip avec un document d'instructions décrivant quoi faire avec et le dossier pour l'extraire. Comme Remy l'a dit, ClickOnce n'est pas une mauvaise idée, mais je l'ai trouvé un peu difficile à mettre en place (une fois que vous l'avez mis en place, cependant, cela fonctionne très bien). D'un autre côté, un projet de déploiement est plus simple et si j'étais vous, ce serait la première chose que j'explorerais.

+0

Dites clients payants, c'est qui compte vraiment? Qu'est-ce que le projet Deployemnet? – zaharpopov

+0

Un projet de déploiement (ou un projet d'installation) est un projet Visual Studio qui génère un package d'installation pour votre application. – Vedran

+0

qui n'est pas disponible dans la version Express de Visual Studio –

0

lorsque vous emballez votre application, vous shoud inclure le .NET Framework

1

Utilisez Xenocode ici

http://spoon.net/Studio/

Pas besoin d'installer quoi que ce soit. Il convertit votre exe en code natif indirectement et vous pouvez exécuter n'importe où sur le système Windows. Il a également une certaine option d'ajouter un cadre à l'intérieur et la taille totale de l'exe sera quelque part près de 10 Mo + Votre taille d'application exe ..

Merci

+0

Il n'est pas toujours idéal d'utiliser 'ngen' ou des outils similaires pour convertir en code natif. Cela pourrait rendre l'assemblage/l'application plus petit, mais perdra si, par exemple, 'ngen' est exécuté sur une machine 32 bits, l'utilisateur dispose alors d'une machine 64 bits. –

+0

Mais ils mentionnent qu'ils ont maintenant également pris en charge Windows 7 et 64 bits. Alors essayons.je n'ai pas encore essayé. – prashant

+0

Dans mon cas, l'exécutable passe de 400k à 120MB ... –

0

Check out Inno: http://www.jrsoftware.org/isinfo.php Il est gratuit et assez simple.

OTOH J'ai vu QTTabBar l'utiliser dans son code et il s'agissait littéralement d'un seul fichier texte (setup.iss). Laissez-moi voir si je peux trouver l'URL de leur page SourceForge afin que vous puissiez voir la source et la construction ... Il y a http://qttabbar.svn.sourceforge.net/viewvc/qttabbar/trunk/Install/ Si vous prenez l'arbre source, vous pouvez probablement le réajuster pour votre application en un jour.

5

Nous essayons de garder le déploiement aussi simple que possible, et l'une des choses que nous faisons est de nous assurer que notre application est juste un seul exécutable, aucun fichier de support nécessaire.

Nous plusieurs étapes pour y arriver:

  1. Assurez-vous que tous les fichiers de ressources dépendantes sont stockées dans des ressources intégrées lorsque cela est possible, et non sur le disque
  2. Utilisez ILMerge pour relier tous les ensembles en un seul exécutable
  3. Facultatif - obfuscate l'assembly
  4. Facultatif - Si certaines parties ne peuvent pas être ignorées ou masquées, ce qui nous oblige à avoir plusieurs fichiers, nous utilisons PostBuild de Xenocode pour lier tous les fichiers dans un seul exécutable. Xenocode offre un système de fichiers virtuel pour cela. Cela permet également l'intégration du framework afin que votre application s'exécute sur une installation propre de Windows - aucune dépendance ne doit être installée :-)
  5. Enveloppez le seul exécutable dans un programme d'installation msi en utilisant WiX
  6. Enveloppez le seul exécutable en cliquant une fois le déploiement. Pour cela, nous utilisons également un petit exécutable de lancement de talon qui démarre l'application principale, ce qui nous permet de réutiliser le même exécutable d'application principale
  7. Créez un fichier zip de l'exécutable de fichier unique pour une installation manuelle.

Nous les éléments suivants sur notre site de téléchargement:

  1. l'installateur MSI - nous préférons les gens à utiliser celui-ci
  2. Un fichier zip avec le Xenocoded (fichier unique) exécutable
  3. Un zip fichier avec l'exécutable Xenocoded (fichier unique) y compris le .NET Framework
Questions connexes