0 votes

C# .Net - déploiement d'une application "très" personnalisée

Nous travaillons sur le déploiement d'un très application personnalisée.

L'application est le programme principal (et le seul programme) qui fonctionnera sur le PC, mais elle dépend de plusieurs installateurs tiers qui doivent être installés via des programmes d'installation distincts. Il s'agit notamment de MSI standard, d'install shield, d'autres configurations obsolètes, etc.

En plus de cela, nous devons déployer SQL Server Express 2005, installer IIS s'il n'est pas trouvé et configurer un site web.

L'utilisateur final qui déploie ce système sera une personne ayant une expérience technique sur un nouveau PC "prêt à l'emploi" avec XP SP3.

Quelle est une bonne option pour développer cela ? WiX ? Les projets d'installation de Visual Studio ne suffiront peut-être pas. Il y a aussi le problème de l'exécution d'autres MSI alors qu'un MSI est déjà en cours d'exécution.

Ne fonctionnerait-il pas mieux en tant qu'application C# standard qui nécessite la préinstallation de .Net ? Il suffirait alors de demander quelques options et de lancer plusieurs programmes d'installation, je suppose.

Des idées ? Nous préférons nous en tenir à C# .Net.

3voto

Seth Petry-Johnson Points 5709

Le runtime .NET n'est-il pas déjà installé dans XP SP3 ?

Si votre utilisateur final est une personne ayant une expérience technique, il semble raisonnable de sacrifier une partie de la "magie" d'un package MSI pour la flexibilité de quelque chose d'un peu plus brut, comme un script Ruby, un script Powershell, ou une console .NET ou une application Winforms.

1voto

mbmcavoy Points 1046

Il s'agit de comparer les avantages et les coûts.

Si le projet ne doit être exécuté que sur un seul ou un petit nombre de PC cibles et que vous avez la possibilité de prendre en charge l'installation (même à distance), je recommanderais de procéder à une installation manuelle pour toutes les dépendances tierces.

Il sera beaucoup plus facile de fournir des instructions écrites à l'installateur de chaque paquet que d'écrire/tester/déboguer (et probablement encore supporter) un installateur complexe et entièrement automatisé qui ne sera utilisé qu'une ou trois fois.

S'il y a de nombreuses installations, l'automatisation sera plus avantageuse.

1voto

LinuxUser Points 1

Il existe un produit d'installation appelé Inno Setup qui pourraient répondre à vos besoins. Il permet de créer des scripts personnalisés afin de détecter si toutes les dépendances sont installées.

Si certaines d'entre elles ne sont pas installées, l'installateur peut, à l'aide de scripts, télécharger et installer les dépendances tierces avant d'installer votre application. Vous trouverez de l'aide à ce sujet dans l'article de Code Project. (http://www.codeproject.com/KB/install/dotnetfx\_innosetup\_instal.aspx)

Le seul problème avec cette route est que le langage de script est en pascal.

Juste une question, est-ce que l'entreprise pour laquelle vous travaillez fournit les boîtes ? Si c'est le cas, ne pourriez-vous pas pré-installer le logiciel ? Au moins de cette façon il y a une chose de moins qui peut aller mal.

1voto

Agent_9191 Points 5466

WIX est un moyen assez souple de créer le programme d'installation (bien que la courbe d'apprentissage puisse être assez longue car la documentation fait encore défaut). Ce serait probablement votre meilleur choix pour installer les composants qui sont réellement votre les artefacts du produit. Faites-lui vérifier que les composants requis sont installés, mais je n'essaierais pas de lancer des installateurs à partir de lui. Au lieu de cela, comme Seth a mentionné écrire un Powershell script/VBScript (ou application Console) qui fera la vérification des composants et lancera les anciens installateurs pour l'utilisateur dans l'ordre nécessaire. Bien sûr, vous auriez besoin d'un moyen de capturer quand l'installateur se termine avant de continuer (je ne sais pas si VBScript a vraiment cette capacité, donc Powershell/application Console pourrait être un choix judicieux). Et l'installateur final appelé serait votre produit. De cette façon, si des redémarrages sont nécessaires, l'installateur peut être exécuté exactement de la même manière et continuerait à vérifier les composants requis et à lancer les installateurs si nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X