2009-10-27 13 views
4

S'il s'agit d'une question répétée, veuillez me diriger vers la solution existante. Je n'ai pas réussi à trouver une requête correspondante.Utilisation de heat.exe pour ajouter des fichiers en bloc à un nouveau projet WiX: HEAT5150

Nous utilisons actuellement InstallShield. J'essaye de cacher un projet avec 407 dossiers à un paquet d'installation de WiX3. J'ai essayé d'utiliser heat.exe pour faire partie de l'automatisation mais je reçois l'avertissement suivant pour presque tous les fichiers:

c:> heat dir "c:\projectDir\projectA" -gg -ke -template:Product -out "c:\install\projectA\heatOutput"

heat.exe: warning HEAT5150 : Could not harvest data from a file that was expected to be a SelfReg DLL: c:\projectDir\projectA\plugin1.dll. If this file does not support SelfReg you can ignore this warning. Otherwise, this error detail may be helpful to diagnose the failure: Unable to load file: c:\projectDir\projectA\plugin1.dll, error: 126.

Q: Est-il normal pour cet avertissement à signaler pour chaque fichier?

S'il existe un didacticiel "Comment créer/convertir votre premier projet d'installation WiX avec plusieurs fichiers", veuillez me le signaler. L'exigence clé est "avec beaucoup de fichiers".

PS. Je sais que WiX est conçu pour la création incrémentielle de projets d'installation, mais il serait bon de savoir s'il existe un moyen automatisé de convertir les projets d'installation existants.

Répondre

1

If there's a current "How To create/convert to your first WiX install project with many files" tutorial, please point me to it. The key requirement is "with many files"

Vous pouvez prendre le fichier msi généré avec installshield, puis le décompiler avec l'outil dark.exe fourni avec wix. Comme vous pouvez le voir dans this diagram, dark.exe génère des fichiers wxs à partir d'un fichier msi.

Vous pouvez l'utiliser comme ceci:

dark installer.msi decompiled.wxs 

Voir dark /? pour plus d'informations.

éditer: Je n'utilise pas Votive, mais je pense qu'il devrait être capable de gérer les fichiers wxs générés par le noir. Est-ce que Votive vous a montré une erreur?

edit2: Les fichiers wixproj sont uniquement destinés à l'intégration de Visual Studio et de msbuild. Les outils de base ne connaissent pas ou n'utilisent pas ce format. Créez simplement un wixproj vide et ajoutez le fichier wxs à partir de Visual Studio.

edit3: Vous ne devez pas comparer la taille du fichier wxs à la taille du fichier msi. Comme un fichier de projet installshield, un fichier wxs ne contient pas les fichiers à installer. Il ne fait référence qu'à eux. Votre fichier de projet installshield n'est pas non plus de 70 Mo. Si vous voulez extraire les fichiers binaires du fichier MSI, vous devez utiliser dark.exe avec le commutateur -x <path>.

+0

Merci. Dark.exe a créé un * .wxs qui nécessitait WiXAware 2.0 pour l'afficher. Est-ce que c'est un comportement correct? J'ai été surpris que dark.exe n'ait pas généré de fichier que je puisse charger dans Votive (via Visual Studio 2008) puisque cela est inclus avec le WiX 3.0 Toolset. –

+0

il suffit d'ouvrir les wx en VS ... c'est juste du XML, rien d'extraordinaire. – saschabeaumont

+0

J'espérais un * .wixproj mais il semblerait que je vais seulement obtenir un fichier * .wxs qui manque beaucoup du contenu du projet d'installation orginal. L'exécution de dark.exe a donné quelques avertissements mais aucun de ceux qui explique pourquoi beaucoup de fichiers de produit ne sont pas dans le résultat * .WXS –

0

Essayez-vous d'extraire des données de DLL x64? Cela ne fonctionne pas vraiment ...

+0

J'essaie de trouver le moyen le plus simple (autre que de construire un projet WiX à partir de rien) pour convertir un projet d'installation InstallShield (ou * .msi) en un projet d'installation WiX en utilisant les outils disponibles avec WiX v3.0 Toolset (c'est-à-dire Votive w/Visual Studio 2008). –