2011-04-15 2 views
0

Je voudrais savoir comment puis-je détecter si le fichier d'aide est contenu dans le fichier d'installation de l'application de plate-forme Windows (msi ou exe). Existe-t-il une méthode pour obtenir cette information sans installer le logiciel en premier?Est-il possible de détecter si le fichier d'aide est contenu dans le fichier d'installation (msi ou exe)?

Bien sûr, le fichier d'installation peut être créé par de nombreux fabricants d'installation comme innosetup, installshield, etc. Je me demande donc s'il existe une méthode universelle pour résoudre ce problème.

Répondre

1

Pour une installation basée sur MSI, ce serait très facile. Par exemple, vous pouvez utiliser l'interopérable Microsoft.Deployment.WindowsInstaller via C# pour ouvrir le fichier MSI en tant que InstallPackageClass, puis accéder à sa collection Files pour voir s'il contient le fichier qui vous intéresse.

Pour une installation non basée sur MSI, il n'y a pas de manière universelle et dans la plupart des cas, pas de période. Vous voyez, c'est un peu le but de MSI: avoir un paquet basé sur des standards riches en méta-données pour pouvoir voir ce qu'il fait. Lorsque vous faites un programme d'installation piloté par un script propriétaire, vous perdez cette ouverture.

0

S'il s'agit d'un fichier MSI, ouvrez-le à l'aide d'Orca et affichez les noms des fichiers. Pour les deux, vous devriez pouvoir effectuer une installation administrative, qui extrairait les fichiers, mais n'enregistrerait rien. En fonction de l'origine de l'exe, une installation administrative est modifiée, car chaque fournisseur (installshield, innosetup, etc.) a son propre moyen d'exécuter une installation administrative.

pour un MSI, il est tout simplement

msiexec /a <msi_filename>

Pour un exe, vous devrez regarder comment passer le/un argument.

Questions connexes