Comment créer un système d'installation simple pour VB6 sur XP/Vista et versions ultérieures ?[fermé]

StackOverflow https://stackoverflow.com/questions/23836

  •  09-06-2019
  •  | 
  •  

Question

L'accent est mis sur la simplicité.Je n'ai jamais créé d'installateur et je préfère ne pas avoir à apprendre grand-chose.Un système auquel je pourrais confier une pile de fichiers et qui permettrait de deviner intelligemment où les placer serait idéal.

Allez-y et répondez à la question générale.

Cependant, dans mon cas, je suis confronté à des contraintes supplémentaires.Le programme à installer est écrit en VB6 (ou est-ce 5 ?) et quelques versions précédentes de VB, donc c'est pas va être mis à jour bientôt.J'ai une installation en cours et j'aurai une VM propre avec laquelle jouer. Je vais donc faire une boucle de :exécutez l'installation, trouvez où elle est cassée, réparez-la, ajoutez-la au programme d'installation, rétablissez la VM, réessayez.Si quelqu'un a une meilleure approche, je suis ouvert aux suggestions.

je DOIT faites-le fonctionner sur XP et j'aimerais vraiment avoir quelque chose qui fonctionnera également sur les versions plus récentes de Windows.

Était-ce utile?

La solution

InnoSetup ou NSIS, selon ce qui vous semble le plus simple. ISTool est un bel outil GUI pour InnoSetup qui facilite encore plus la création de scripts de configuration.

Autres conseils

J'ai utilisé InnoSetup il y a plusieurs années, avant Vista, et j'en étais alors très satisfait.Je n'avais que quelques fichiers à installer et une icône du menu Démarrer.Cela a très bien fonctionné et était facile à apprendre.

Dépendance Walker est très utile pour découvrir quelle DLL manque dans le programme d'installation.Une fois que vous connaissez la DLL, vous pouvez trouver de quel module de fusion il s'agit en utilisant le Recherche de modules de fusion.

J'ai travaillé avec NSIS et j'ai surmonté certaines de ses complexités mineures, c'est un système fantastique.c'est gratuit, offre des tonnes de fonctionnalités de plugin et j'ai réussi à faire tout ce que j'avais à faire.

La création d'un package d'installation complet pour un programme est presque un domaine en soi.De nombreux facteurs doivent être pris en compte et la plupart d'entre nous n'utilisent plus Windows 95.Le monde n’est plus aussi simple qu’il l’était autrefois.

Il y a beaucoup de choses à régler, et certains de ces problèmes de « configuration » nécessitent également de modifier le programme.Par exemple, le concept de « dossiers protégés » qui semblait nouveau pour les gens lorsque Vista UAC est entré en scène.Je suppose qu'ils fonctionnaient tous en tant qu'administrateur ou quelque chose comme ça ?Dans sa forme la plus simple, cela signifie que vous ne placez plus de fichiers inscriptibles à côté du fichier EXE dans les programmes (alias « Fichiers de programme »).

Un autre facteur est que la façon dont le registre est utilisé a changé.Je ne parle pas de virtualisation du registre, même si cela en fait également partie.Mais l'enregistrement COM peut être effectué à la fois par machine et par utilisateur et même la désactivation de l'UAC peut gâcher cela.Voir Inscriptions COM par utilisateur et processus élevés avec UAC sur Windows Vista SP1.Le résultat est qu'un package d'installation ne doit pas exécuter regsvr32 (ou appeler le point d'entrée d'auto-enregistrement d'une bibliothèque COM).Voir « Remarques » à Tableau d'auto-enregistrement.


Le programme d'installation de Windows est le voie à suivre dans la plupart des cas.Les programmeurs VB6 disposent de Visual Studio Installer 6.0 version 1.1 disponible en téléchargement gratuit pour créer des packages MSI.Voir « Serveurs COM » dans l'article VFP Utilisation de Microsoft Visual Studio Installer pour distribuer des applications Visual FoxPro 6.0 pour quelques informations précieuses.

Ce n'est pas l'option la plus simple, mais il existe un assistant de configuration VB dans VSI 1.1 pour vous aider à maîtriser les bases.Effectuer des tâches avancées telles que créer un sous-dossier [CommonAppData] et définir les droits de chacun sur celui-ci doit être effectué lors d'une étape post-construction en dehors de l'EDI.C'est là que les outils tiers peuvent être utiles pour vous donner plus de contrôle sans recourir à Orca ou aux scripts d'installation post-build.

Ces gars qui créent des installateurs "anciens" scriptés essaient de suivre le rythme, mais le script devient de plus en plus compliqué.Les résultats sont parfois incertains.Windows 7 introduit quelques nouveautés qui lui sont propres.

Bien que ClickOnce ne soit pas vraiment la meilleure option pour VB6, rien ne dit que vous ne pouvez pas utiliser COM sans enregistrement pour les installations XCopy de nombreux programmes.COM sans enregistrement peut même être une bonne option à utiliser dans un package d'installation.


Donc, en fin de compte, le moyen "le plus simple" de déployer des programmes VB6 sera probablement des packages COM XCopy sans enregistrement enveloppés dans un EXE auto-extractible qui lancera un script pour créer un raccourci du menu Démarrer.Si vous pouvez vivre sans le raccourci, c'est encore plus simple :décompressez simplement le paquet là où il doit aller !

Voir Faire mon manifeste ou des outils alternatifs pour un packaging COM sans enregistrement.

Cela nécessite que les systèmes cibles exécutent XP (de préférence SP2) ou une version ultérieure.Le seul problème possible ici est que XP n'incluait pas les runtimes VB6 SP6 avant XP SP3, vous souhaiterez donc d'abord tester votre programme par rapport aux runtimes VB6 SP5.Bon, encore un bug :vous ne pouvez pas utiliser les EXE ActiveX de cette façon, ils nécessitent toujours un enregistrement.

Mon conseil est le suivant.Essayez de garder le programme d'installation aussi simple que possible.Windows Installer est un logiciel très compliqué et lorsque les choses ne fonctionnent pas correctement, il peut être difficile de comprendre ce qui se passe.Je suis sûr que nous avons tous vécu la boucle sans fin de Windows Installer essayant de réparer un fichier pour lequel vous n'avez plus le fichier source .msi.

La plupart du temps, utiliser Windows Installer revient à utiliser un marteau pour casser un écrou.

J'utilise InnoSetup pour mes propres affaires et InstallShield au travail (contre ma volonté).Commencez avec un simple programme d'installation basé sur un script et n'utilisez Windows Installer que si vous avez une bonne raison de le faire.

Notez que la prise en charge de l'installation des assemblys sur le GAC peut être manquante pour certains outils de configuration non Windows Installer (tels que InnoSetup).

je utilisé pour aimer la configuration Inno.Insistez sur "l'habitude".

Lorsque vous exécutez le programme d'installation à fichier unique (ce que vous faites généralement), il décompresse le véritable programme d'installation dans un dossier sous le dossier temporaire, puis tente de l'exécuter.Le problème est...certains programmes antivirus ne le permettent pas.

L'auteur en est conscient et refuse de faire quoi que ce soit.Le nom du dossier est aléatoire et ne peut donc être ajouté à aucune liste d'exemptions que votre programme antivirus pourrait utiliser.

Encore.L'auteur en est conscient et me suggère de dire à mes utilisateurs de désactiver leurs programmes antivirus lors de l'installation.(Comme si ça allait arriver)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top