2010-04-09 4 views
6

J'avais l'habitude de construire des installations pour une application avec NSIS et l'auto-extracteur final était de 1,2 Mo. Maintenant, j'ai besoin d'utiliser WIX en raison des besoins opérationnels et la même installation sort à 4,2 Mo. Je définis les drapeaux compressés comme les documents et les spécifications indiqués sur le noeud du paquet. L'utilisation de 7z pour compresser les résultats MSI dans un fichier zip de 2,4 Mo. Question: Comment faire une compression maximale sur le MSI ou créer un petit MSI (par exemple supprimer des ressources inutiles, etc.)? Remarque: la taille est plus importante et je dois maintenant utiliser MSI/WIX - c'est un bouchon de spectacle!Compression maximale d'une installation MSI en utilisant WIX

Répondre

6

Le problème était un élément ICON qui référencé un fichier source - l'exe principal - et ensuite inclus à nouveau l'exe, cette fois sans compression en tant que ressource.

   <Directory Id="app" Name="MyApp"> 

       <Component Id="app.exe" DiskId="1" Guid="AGUID_123"> 

        <File Id="app.exe" Name="app.exe" Source="..\app\app.exe" KeyPath="yes"> 
         <Shortcut Id="ExeShortcut" Directory="ProgramMenuDir" Name="MyApp" Advertise="yes" Icon="StartMenuIcon.exe" IconIndex="0" /> 
        </File>... 

Et plus bas:

<Icon Id="StartMenuIcon.exe" SourceFile="..\app\app.exe" /> 

je l'ai trouvé à l'aide 7Zip pour ouvrir le fichier MSI résultant et a vu une taille de fichier familier - le principal exe non compressé.

Le fichier MSI résultant est maintenant de 1,4 Mo et sur un pied d'égalité avec NSIS.

+0

Les bitmaps peuvent également être une cause d'éruption de taille. Peut sauver un peu juste en utilisant 256 fichiers BMP compressés couleur au lieu de ceux non compressés 24 bits :) – saschabeaumont

+0

Malheureusement, le "bling" est absolument nécessaire - la plupart sont png si – MX4399

+1

Merci, cela a résolu mon problème. J'ai utilisé un fichier ico personnalisé. Est-il possible de référencer l'icône exécutable à la place pour que le comportement d'origine soit conservé? – tuscland

1

Avez-vous essayé de définir l'attribut CompressionLevel = 'high' dans l'élément Media? Aussi, je devrais dire que WiX inclut seulement les choses que vous lui demandez d'inclure, par conséquent, je ne pense pas que vous pouvez facilement trouver quelque chose à sortir de votre paquet ...

+0

Aidé un peu - 200 ko – MX4399

Questions connexes