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 ?)