2010-02-23 7 views
2

Notre projet C# nécessite l'exécution de deux opérations sur l'ordinateur cible. Le premier est .net 2 ou supérieur, ce qui est une exigence équitable pour les utilisateurs. Le second est le redistribuable C++. Nous avons besoin de cela parce que nous utilisons skincrafter. C'est un peu plus rare à trouver sur un ordinateur cible. Pour l'instant, nous déployons en utilisant Visual Studio et cela crée un setup.exe qui s'assure que .net et le redistribuable C++ se mettent sur la machine cible.Puis-je obtenir un MSI pour faire ce que fait l'exe redistribuable C++?

Notre problème vient lorsque les administrateurs réseau veulent distribuer le programme sur leur réseau. Ils prennent seulement le msi et pas le setup.exe. Cela signifie que lorsqu'un ordinateur sur le réseau essaie d'installer le programme et qu'il n'a pas le redistribuable C++ sur sa machine, le programme ne fonctionne pas correctement. D'après ce que j'ai lu, il semble que le redistribuable met juste quelques DLL sur l'ordinateur. Si c'est le cas, je peux certainement inclure ces DLLs dans le msi et m'assurer qu'elles sont mises sur la machine cible. Ou n'est-ce pas si simple?

Répondre

0

Oui, vous pouvez ajouter les redistribuables C++ dans MSI. Avec les DLL dans le MSI, vous avez la possibilité d'enregistrer la DLL dans la machine cible. Donc vous pouvez le faire aussi.

+0

OK merci. Je pense que les DLL que j'ai besoin d'inclure sont gdiplus.dll, mfc90.dll, msvcr90.dll, Microsoft.VC90.MFC.manifest, Microsoft.VC90.CRT.manifest. Juste besoin de les trouver maintenant. Vous avez mentionné l'enregistrement des dll, devrais-je définir Register/System/SharedLegacyFile ou permanent, ou une combinaison de ceux-ci? Est-ce important que ce soit une DLL pré-compilée qui appelle les dlls C++? – Septih

+0

Définissez la valeur appropriée pour Enregistrer. et Vital = vrai. Cela entraînera l'enregistrement des dll sur la machine cible et en cas de panne, l'installation sera annulée. – Kangkan