2008-08-23 21 views
8

L'accent lourd sur simple. Je n'ai jamais fait d'installateur et je préfère ne pas avoir à apprendre beaucoup. Un système que je pourrais remettre une pile de fichiers et qui ferait des suppositions intelligentes sur l'endroit où les mettre serait idéal.Comment créer un système d'installation simple pour VB6 sous XP/Vista et plus récent?

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

Cependant, dans mes cas, je suis coincé avec 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 de sitôt. J'ai une installation en cours d'exécution et aura une machine virtuelle propre à jouer avec Donc je vais faire une boucle de: lancer l'installation, trouver où il est cassé, réparer, ajouter cela à l'installateur, rétablir la machine virtuelle, essayez à nouveau. Si quelqu'un a une meilleure approche, je suis ouvert aux suggestions. OBTENEZ ça fonctionner sur XP et j'aimerais vraiment avoir aussi quelque chose qui fonctionnera aussi sur les nouvelles versions de Windows.

+0

duplication possible de [Quel est le meilleur choix pour la construction de Windows installateurs?] (Http://stackoverflow.com/questions/3767/what-is-the-best-choice-for-building-windows-installers) – saschabeaumont

+0

@sascha Pas un doublon, car l'installation des programmes VB6 est un peu différente de l'installation.Programmes nets – MarkJ

Répondre

11

InnoSetup ou NSIS, selon ce qui vous semble le plus facile. ISTool est un outil graphique agréable pour InnoSetup qui facilite la création de scripts de configuration.

+0

J'utilise Inno (je n'ai pas essayé l'autre) et le trouve facile à utiliser. Un peu léger sur les docs cependant. – BCS

+0

NSIS est excellent! l'utilise depuis des années. vous pouvez faire un installateur extrêmement simple mais vous pouvez aussi vous impliquer autant que vous le voulez. – Nerdtron

4

Dependency Walker est très utile pour trouver quelle DLL manque dans l'installateur. Une fois que vous connaissez la DLL, vous pouvez trouver ce module de fusion en utilisant le Merge Module Finder.

+0

Dépendance Walker était/Vraiment/pratique – BCS

1

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

5

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

0

Mon conseil est le suivant. Essayez de garder l'installateur aussi simple que possible. Windows Installer est un logiciel très complexe 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 connu la boucle sans fin de Windows Installer en essayant de réparer un fichier que vous n'avez plus le fichier source .msi.

La plupart du temps, l'utilisation de Windows Installer revient à utiliser un marteau pour casser un écrou. J'utilise InnoSetup pour mes propres affaires et InstallShield au travail (contre mon gré). Commencez avec un programme d'installation basé sur un script simple et n'utilisez Windows Installer que si vous avez une bonne raison de le faire.

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

0

I utilisé pour LOVE Inno Setup. Accent sur "l'habitude de". Lorsque vous exécutez le programme d'installation de fichier unique (ce que vous faites généralement), il décompresse le programme d'installation réel dans un dossier situé sous le dossier temporaire, puis essaie de l'exécuter. Le problème est que ... certains programmes anti-virus ne le permettent pas.

L'auteur est conscient de cela et refuse de faire quoi que ce soit à ce sujet. Le nom du dossier est aléatoire et ne peut donc être ajouté à aucune liste d'exceptions que votre programme anti-virus peut utiliser.

Encore une fois.L'auteur est conscient de cela et suggère que je dis à mes utilisateurs de désactiver leurs programmes anti-virus lors de l'installation. (Comme cela va se produire)

+4

C'est un problème avec le logiciel anti-virus. Ce que fait INNO setup est une chose parfaitement raisonnable et valable à faire. Il est également supérieur à tout décharger dans le dossier temporaire et à partir de là. – bruceatk

1

La création d'un package d'installation complet pour un programme est presque un sujet en soi. Il y a beaucoup de facteurs à considérer et la plupart d'entre nous n'exécute plus Windows 95. Le monde n'est pas aussi simple qu'il l'était autrefois.

Il y a beaucoup de choses à régler, et certains de ces problèmes de configuration impliquent également de changer le programme. Par exemple, le concept de «dossiers protégés» qui semblait être nouveau pour les gens lorsque Vista UAC est entré en scène. Je suppose qu'ils couraient tous en tant qu'administrateur ou quelque chose? Dans sa forme la plus simple, cela signifie que vous ne mettez plus de fichiers inscriptibles à côté de l'EXE dans les programmes (alias "Program Files").

Un autre facteur est que la façon dont le registre est utilisé a changé. Je ne parle pas de la virtualisation du registre, bien que cela en fasse également partie. Mais l'enregistrement COM peut être fait à la fois par machine et par utilisateur et même éteindre l'UAC peut muck this up. Voir Per-User COM Registrations and Elevated Processes with UAC on Windows Vista SP1. Le résultat est qu'un package d'installation ne doit pas exécuter regsvr32 (ou appeler autrement le point d'entrée d'auto-reg d'une bibliothèque COM). Voir "Remarques" au SelfReg Table.


Windows Installer est la façon d'aller de l'avant dans la plupart des cas. Les programmeurs VB6 ont Visual Studio Installer 6.0 version 1.1 disponible en téléchargement gratuit pour la création de paquets MSI. Voir "COM Servers" à l'article VFP Using Microsoft Visual Studio Installer for Distributing Visual FoxPro 6.0 Applications pour des informations précieuses.

Cette option n'est pas la plus simple mais il existe un assistant d'installation de VB dans VSI 1.1 pour vous aider à obtenir les bases. Faire des choses avancées comme la création d'un sous-dossier [CommonAppData] et la définition des droits de tout le monde doit être fait dans une étape de 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 avoir recours aux scripts d'installation Orca ou post-build.

Les gars qui créent des programmes d'installation "hérités" essayent de suivre, mais les scripts deviennent de plus en plus compliqués. Les résultats sont parfois incertains. Windows 7 introduit quelques nouvelles rides de son propre chef.

Alors que ClickOnce n'est pas vraiment la meilleure option pour VB6, rien ne dit que vous ne pouvez pas utiliser COM sans reg pour les installations XCopy de nombreux programmes. COM sans Reg peut même être une bonne option pour une utilisation dans un paquet d'installation d'ailleurs.


Donc à la fin de la « simple » pour déployer des programmes VB6 va probablement être packages COM XCopy reg sans enveloppées dans un EXE auto-extractible qui se déclenche au large d'un script pour créer un raccourci dans le menu Démarrer . Si vous pouvez vivre sans le raccourci, c'est encore plus simple: il suffit de décompresser le paquet là où il faut aller!

Voir Make My Manifest ou d'autres outils pour l'emballage COM Reg-Free.

Cela nécessite que les systèmes cibles exécutent XP (de préférence SP2) ou une version ultérieure. Le seul petit problème possible est que XP n'a pas inclus les runtimes VB6 SP6 jusqu'à XP SP3, donc vous voudrez tester votre programme par rapport aux runtimes de VB6 SP5 en premier. Eh bien un autre problème: vous ne pouvez pas utiliser les EXE ActiveX de cette façon, ils ont toujours besoin d'enregistrement.