Empaquetage des prog. VB6 - Programmation
Marsh Posté le 06-08-2001 à 09:50:20
bin moi j'utilise celui de MS et j'ai aucun PB
Marsh Posté le 06-08-2001 à 10:01:28
L'empaqueteur microsoft est très lent (quand on insère 100 fichiers dans l'empaquetage par ex, on rigole bien à l'install...) et déconne dés qu'on utilise des modules externes (bases de données...) qui doivent s'enregistrer dans la base des registres. Je cherche un prog qui empaquete bien et fonctionne sous Win 95/98/98se/98me/2000/xp.
Marsh Posté le 06-08-2001 à 11:36:04
Pourquoi tu ne fais pas une installation personnalisé,c'est trés chaint et trés long j'en convient mais c'est excellent !
Marsh Posté le 06-08-2001 à 20:27:31
Comment ça une installation personnalisée ?
J'utilise un empaqueteur pour que les clefs à mettre dans la base des registres soient OK, vu que toutes ces histoires de clefs j'y comprend rien. Alors ça fonctionne, mais pas sur tous les postes. Le problème c'est que si j'utilise pas d'empaqueteur, des fichiers comme DAO350.DLL, MSJET35.DLL se trouvent mal enregistrés dans la base des registre et ça fonctionne pas. pourtant ils sont présent dans le répertoire d'installation.
Sinon, je suis tout à fait d'accord, quand je fais un programme tout simple, je zip tout dans un fichier contenant tous les fichiers (executable + vb6fr.dll + msvbvm60.dll....) et ça marche impec, mais là cette méthode n'est pas valable dans le cas concerné. Maintenant y'a peut-être un fichier .REG à faire en plus, mais là je sais pas comment faire.
Marsh Posté le 06-08-2001 à 20:43:25
Inno Setup.
Il est gratos et opensource.
C'est celui que j'utilise pour mes softs
Marsh Posté le 06-08-2001 à 20:57:09
Inno Setup peut résoudre mon pb de clefs pour la base de registre pour l'utilisation de base de données ?
j'ai trouvé : inno setup projetc builder 1.09a , sur telecharger.com, c'est la derniere version ?
Marsh Posté le 08-08-2001 à 07:53:51
J'ai installé Inno Setup. C'est vrai que ce logiciel a l'air complet, mais je cherche un logiciel plus simple qui importe les programmes VB et surtout qui gère correctement tous ce qui est clefs dans la base de registres.
Vos avis sur InstallShield pour les prog en VB ?
Marsh Posté le 29-08-2001 à 14:07:09
Bien, je vais moi-même répondre à ma question (si ça interresse d'autres personnes...) :
- Empaqueteur Microsoft : pas terrible du tout, plein de problèmes à l'installation...
- Wise for Windows Installer v2 : bien pour les programmes "standards" (pas d'ocx à rajouter... donc pas de bases de données à gérer dans le programme à installer...)
- InstallShield Express v4 : super, tout s'installe bien et fonctionne bien avec toutes les versions de Windows. Pour ma part, pas de problème et l'import des programmes VB6 est bien réalisé.
Marsh Posté le 29-08-2001 à 14:15:28
Si c'est un pb au niveau des dll jet ou DAO, essaye plutot de redistribuer le MDAC correspondant à tes version au lieu d'installer uniquement les dll dont tu te sert
Je dis peut être une conerie vue que je suis pas un expert empaquetage vb mais essaye ça ne coute rien
Marsh Posté le 09-09-2001 à 14:47:35
Rhaaaaaaaa !!!
Je reviens sur ce que j'ai dit !
En fait, même avec InstallShield (express ou developper), j'ai des messages d'erreurs sur certains postes.
A l'installation, msg du genre :
Le service Windows Installer ne peut pas mettre à jour
le fichier système C:\WINNT\System32\ASYCFILT.DLL
car le fichier est protégé par Windows. Vous devrez
peut-être mettre à jour votre système d'exploitation
pour que le programme fonctionne correctement.
A l'execution, msg du genre :
Erreur d'exécution '430'
La classe ne gère pas Automation ou l'interface attendue
ou
Erreur d'exécution '-2147319779 (8002801d)':
Erreur Automation
Bibliothèque non inscite
J'ai essayé tout ce que je connais mais là je bloque...
Je souhaite que mon prog fonctionne sous Windows 95/98/NT/2000/XP et que tout soit empaqueté dans un seul fichier Setup.exe.
Là, j'en ai marre, si quelqu'un a un lien en français du genre "la base de registre pour les gros nuls" ou "comment bien empaqueter ses programmes vb6", je suis preneur.
Quand je pense à l'époque ou je progammais en assembleur sur Amstrad CPC6128, c'etait bien plus simple : tout compilé dans un seul fichier et c'était terminé... je crois que j'aurais pas du faire un logiciel qui utilise les bases de données MDB...
Base de registre Windows
Marsh Posté le 09-09-2001 à 16:50:44
tu peux essayer LST2ISS qui transforme un script d'install vb en script d'install pour inno setup...
http://fred.just.free.fr/francais/progs/Lst2Iss.html
Marsh Posté le 09-09-2001 à 23:25:52
1805 a écrit a écrit : Inno Setup peut résoudre mon pb de clefs pour la base de registre pour l'utilisation de base de données ? j'ai trouvé : inno setup projetc builder 1.09a , sur telecharger.com, c'est la derniere version ? |
Inno Setup est à la version 2, mais ce project builder ça a l'air d'être un programme créant le script pour Inno Setup.
pour d/l Inno setup: www.jrsoftware.org
Marsh Posté le 10-09-2001 à 05:30:26
Merci à tous !!
Je télécharge le tout et je me remet à l'empaquetage...
Marsh Posté le 10-09-2001 à 15:06:42
Bien, j'ai installé Inno Setup et LST2ISS et mes premiers tests m'encouragent à continuer. Je crois que j'ai compris comment écrire les scripts sous Inno Setup.
Voici ce que contient mon programme VB6 :
Références cochées :
- Visual Basic For Applications
- Visual Basic runtime objects and procedures
- Visual Basic objects and procedures
- OLE Automation
- Microsoft DAO 3.51 Object Library
- Microsoft Scripting Runtime
Composants cochés :
- Microsoft Common Dialog Control 6.0 (SP3)
- Microsoft Data Bound List Controls 6.0
- Microsoft Rich Textbox Control 6.0 (SP3)
Comme fichiers systèmes à empaqueter je trouve :
- Asycfilt.dll
- Cmdlgfr.dll
- Comcat.dll
- Comdlg32.ocx
- Dao350.dll
- Dblist32.ocx
- Dblstfr.dll
- Expsrv.dll
- Msjet35.dll
- Msjint35.dll
- Msjter35.dll
- Msrd2x35.dll
- Msrepl35.dll
- Msvbvm60.dll
- Msvcrt.dll
- Msvcrt40.dll
- Oleaut32.dll
- Olepro32.dll
- Rchtxfr.dll
- Riched32.dll
- Richtx32.ocx
- Scrrnfr.dll
- Scrrun.dll
- Stdole2.tlb
- Vb5db.dll
- Vb6fr.dll
- Vb6stkit.dll
- Vbajet32.dll
Sous Inno Setup, dois-je empaqueter également le fichier Mdac_typ.exe (Microsoft Data Access Components 2.0) pour que mon programme fonctionne ? Et si oui, puis-je enlever certains fichiers systèmes à empaqueter de la liste ci-dessus ? Parce que sinon mon Setup fait plus de 10Mo et pour distribuer sur internet c'est pas génial.
En regardant avec Winzip le contenu de Mdac_typ.exe, je retrouve les fichiers suivants :
- Asycfilt.dll
- Expsrv.dll
- Msjet35.dll
- Msjint35.dll
- Msjter35.dll
- Msrd2x35.dll
- Msrepl35.dll
- Msvcrt.dll
- Oleaut32.dll
- Olepro32.dll
- Stdole2.tlb
- Vbajet32.dll
J'en conclus que ma liste de fichiers systèmes à empaqueter est :
- Cmdlgfr.dll
- Comcat.dll
- Comdlg32.ocx
- Dao350.dll
- Dblist32.ocx
- Dblstfr.dll
- Msvbvm60.dll
- Msvcrt40.dll
- Rchtxfr.dll
- Riched32.dll
- Richtx32.ocx
- Scrrnfr.dll
- Scrrun.dll
- Vb5db.dll
- Vb6fr.dll
- Vb6stkit.dll
- Mdac_typ.exe (+ exécution par le setup)
Merci de me dire si j'ai oublié quelque chose car j'en suis à mon 5ème empaquetage et j'aimerais bien que la dernière version de mon Freeware s'installe à merveille.
Marsh Posté le 04-10-2001 à 15:20:04
Ah ! Enfin tout marche !!
Finalement, je n'ai pas inséré le fichier Mdac_typ.exe (Microsoft Data Access Components 2.0) pour que tout fonctionne (c'est possible mais le Setup prend alors plus de 8 Mo)
Je me suis débrouillé avec les fichiers systèmes et mon Setup prend 3,9 Mo.
Je voudrais remercier toutes les personnes qui m'ont conseillé Inno Setup ( http://www.jrsoftware.org/isinfo.htm )sur les divers forums où j'ai posté mon message. Je remercie également les autres pour leurs réponses et conseils.
En effet, je comprend maintenant mieux pourquoi on m'a conseillé Inno Setup ; je trouve que ce soft est :
- puissant
- simple d'utilisation
- fiable
- gratuit
- les (dés)installations sont rapides
- les Setup créés prennent beaucoup moins de place qu'InstallSield ou Wise for Windows Installer (dans mon cas, je suis passé d'un programme d'installation de 6,5 Mo à 3,9 Mo)
Et je parle en connaissance de cause, vu que j'ai pu tester et passer beaucoup de temps à me prendre la tête sur les générateurs de Setup les plus connus.
Bon, au début j'ai confondu Inno Setup Project Builder avec Inno Setup lui-même et c'est pour ça que je ne comprennais rien.
Je conseille vivement certains utilitaires en complément d'Inno Setup que je trouve très bien :
- LST2ISS ( http://fred.just.free.fr/francais/progs/Lst2Iss.html ): Converti les empaquetages VB6 Microsoft (fichiers LST) en scripts Inno Setup (fichiers ISS). Attention, le script généré n'est pas pleinement fonctionnel, mais pour les personnes ne connaissant pas Inno Setup comme c'était mon cas, le script généré montre le language d'Inno Setup et ensuite il est très facile de comprendre celui-ci.
- Istool ( http://www.bhenden.org/istool ): Interface visuelle pour Inno Setup. Le script apparait d'une façon plus lisible.
Pour tous ceux qui ont le même genre de problèmes que celui que j'ai eu, voici le script (faites un copier/coller dans Inno Setup et modifiez légèrement le script avec vos noms de fichiers) pour que tout fonctionne sur WIN95/98/NT/2000/XP. Il y a peut-être quelques fichiers en trop, je ne sais pas ; mais le principal est là : ça fonctionne sur tous les postes que j'ai essayé.
; ************************************************
; Script d'empaquetage VB6 pour Inno Setup v2.0.13
; ************************************************
[Setup]
AppName=Le nom de mon logiciel
AppVerName=Le nom de mon logiciel
AppVersion=1
DefaultDirName={pf}\Le repertoire de mon logiciel
OutputDir=F:\Document\Visual Basic\vb6\Le repertoire ou sera cree le fichier executable
OutputBaseFilename=Le nom de fichier du fichier executable du fichier Setup d'installation
WindowVisible=false
AdminPrivilegesRequired=true
DisableStartupPrompt=true
EnableDirDoesntExistWarning=false
CompressLevel=9
WizardImageFile=compiler:WizModernImage2.bmp
WizardSmallImageFile=compiler:WizModernSmallImage2.bmp
LicenseFile=Mon fichier de licence.rtf
; Il est possible de télécharger le fichier pour le language français sur le site d'Inno Setup ( http://www.jrsoftware.org/files/istrans )
MessagesFile=compiler:french.isl
UsePreviousGroup=true
WizardStyle=modern
UninstallStyle=modern
DefaultGroupName=Mon groupe à creer
AppPublisher=Mon nom d'auteur ici
AppPublisherURL=http://mon site.com
AppSupportURL=http://mon site support technique.com
AppUpdatesURL=http://mon site d'updates.com
UninstallDisplayIcon={app}\mon fichier exe principal pour afficher son icone dans ajout/suppression prog
[Files]
; Fichiers nécessaires à tous programmes VB6
Source: VB6STKIT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: COMCAT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver noregerror; CopyMode: alwaysskipifsameorolder
Source: MSVCRT40.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: VB6FR.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: msvbvm60.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver noregerror; CopyMode: alwaysskipifsameorolder
Source: asycfilt.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver noregerror; CopyMode: alwaysskipifsameorolder
Source: expsrv.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver noregerror; CopyMode: alwaysskipifsameorolder
Source: MSVCRT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: OLEAUT32.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: OLEPRO32.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: STDOLE2.TLB; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regtypelib noregerror; CopyMode: alwaysskipifsameorolder
Source: CMDLGFR.DLL; DestDir: {sys}; Flags: sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: COMDLG32.OCX; DestDir: {sys}; Flags: regserver sharedfile noregerror; CopyMode: normal
; Fichiers nécessaires pour les programmes VB6 utilisant un RichTextBox
Source: Rchtxfr.dll; DestDir: {sys}; Flags: sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: Riched32.dll; DestDir: {sys}; Flags: sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: Richtx32.ocx; DestDir: {sys}; Flags: regserver sharedfile noregerror; CopyMode: normal
; Fichiers nécessaires pour les programmes VB6 utilisant une base de données MDB
Source: dblist32.ocx; DestDir: {sys}; Flags: regserver sharedfile noregerror; CopyMode: normal
Source: DBLSTFR.DLL; DestDir: {sys}; Flags: sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: scrrnfr.dll; DestDir: {sys}; Flags: sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: scrrun.dll; DestDir: {sys}; Flags: regserver sharedfile noregerror; CopyMode: normal
Source: VB5DB.DLL; DestDir: {sys}; Flags: sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: MSJTER35.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: MSJINT35.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: MSJET35.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver noregerror; CopyMode: alwaysskipifsameorolder
Source: MSRD2X35.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver noregerror; CopyMode: alwaysskipifsameorolder
Source: VBAJET32.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: VBAR332.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: MSREPL35.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall noregerror; CopyMode: alwaysskipifsameorolder
Source: DAO350.DLL; DestDir: {dao}; Flags: restartreplace uninsneveruninstall regserver sharedfile noregerror; CopyMode: alwaysskipifsameorolder
Source: DAO2535.TLB; DestDir: {dao}; Flags: restartreplace uninsneveruninstall regtypelib noregerror; CopyMode: alwaysskipifsameorolder
; Fichiers du programme VB6 créé
Source: MonFichierExecutable.exe; DestDir: {app}; Flags: ; CopyMode: alwaysskipifsameorolder
Source: MonFichierRTF.rtf; DestDir: {app}; Flags: ; CopyMode: alwaysskipifsameorolder
Source: MaBaseDeDonnees.mdb; DestDir: {app}; Flags: ; CopyMode: alwaysskipifsameorolder
Source: MonAutreFichier1; DestDir: {app}; Flags: ; CopyMode: alwaysskipifsameorolder
Source: MonAutreFichier2; DestDir: {app}; Flags: ; CopyMode: alwaysskipifsameorolder
[Icons]
Name: {group}\MonNomDeRaccourciCreeDansLeMenuDemarrer; Filename: {app}\MonFichierExecutable.exe; WorkingDir: {app}; IconFilename: {app}\MonFichierExecutable.exe; IconIndex: 0
Marsh Posté le 06-08-2001 à 09:12:56
Quel empaqueteur utiliser pour les programmes visual basic 6 ?
L'empaqueteur microsoft est un exemple de nullité.
J'utilise Wise for Windows Installer 2 mais des pb persistes toujours à l'install sur certains postes.
J'utilise des bases de données et autres modules externes et cela cause toujours des pb au niveau de l'install sur certains postes.
Quelqu'un connait un bon prog d'install (InstallShield ça marche bien ? J'ai pas pu l'essayer. Y-a-t-il un import pour les prog Vb6 ?)