2017-09-28 3 views
2

Nous utilisons CustomActions écrit en VC++ dans nos WIX WIS. cela fonctionne bien dans Windows7 machine. Mais quand nous avons essayé d'exécuter le msi dans Windows 10, cela ne fonctionne pas et échoue parce que le paquet redistribuable de Microsoft Visual C++ 2010 n'est pas installé par défaut dans la machine Win 10. Donc, pour que le MSI fonctionne, nous devons installer le package redistribuable Microsoft Visual C++ 2010. Mais le problème est que nous ne pouvons pas l'installer avec le MSi parce que les actions personnalisées sont responsables de choisir le INSTALLDIR et cela se produira avant d'installer quoi que ce soit.Pour ma question estAction personnalisée VC++ pour Wix

1.) Avons-nous vraiment besoin de Visual C++ 2010 Redistribuable pour exécuter des actions personnalisées VC++.

2.) Comment puis-je l'installer avant de choisir INSTALLDIR?

Répondre

2

Compilez simplement votre DLL avec des bibliothèques statiques. Dans ce cas, votre DLL n'a pas de dépendances supplémentaires. Dans les paramètres du projet, réglez General->Use of MFC à Use MFC in a static library. Sous C/C++ -> Code Generation sélectionnez les options Multithreaded ou Multithreaded Debug/MT ou/MTd.

Vous pouvez utiliser Dependency Walker pour vérifier si vous avez besoin de plusieurs DLL à installer.

1

Vous devez lier statiquement les bibliothèques CRT dans vos actions personnalisées dll à la place.