J'ai créé un package d'installation WiX pour un programme volumineux. Le package d'installation inclut les modules de fusion pour les fichiers Visual C++ 9.0. J'ai besoin d'inclure les modules de fusion pour une DLL COM. L'installation fonctionne très bien. La première fois que je lance le programme, il se passe quelque chose d'étrange. La première fois que la DLL COM est appelée, le mécanisme d'installation Windows démarre. Une boîte de dialogue d'installation apparaît à l'improviste. Il fait tout ce qu'il doit faire pendant un petit moment, puis il disparaît et le programme reprend sa fonction normale. Cela ne se produit que la toute première fois que la DLL COM a besoin des modules de fusion Visual C++ et une fois l'installation terminée, le programme continue à fonctionner sans incident. Pourquoi cela se produit-il, et que puis-je faire pour l'empêcher? Voici le code WiX pour les modules de fusion:La boîte de dialogue d'installation bizarre s'affiche après l'exécution de l'installation WiX
<DirectoryRef Id="TARGETDIR">
<Merge Id="VCRedistCRT" SourceFile="C:\Program Files\Common Files\Merge Modules\Microsoft_VC90_CRT_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistATL" SourceFile="C:\Program Files\Common Files\Merge Modules\Microsoft_VC90_ATL_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistMFC" SourceFile="C:\Program Files\Common Files\Merge Modules\Microsoft_VC90_MFC_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistMFCLOC" SourceFile="C:\Program Files\Common Files\Merge Modules\Microsoft_VC90_MFCLOC_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VCRedistOpenMP" SourceFile="C:\Program Files\Common Files\Merge Modules\Microsoft_VC90_OpenMP_x86.msm" DiskId="1" Language="0"/>
</DirectoryRef>
<Feature Id="VCRedistCRT" Title="Visual C++ 9.0 CRT Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedistCRT"/>
</Feature>
<Feature Id="VCRedistATL" Title="Visual C++ 9.0 ATL Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedistATL"/>
</Feature>
<Feature Id="VCRedistMFC" Title="Visual C++ 9.0 MFC Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedistMFC"/>
</Feature>
<Feature Id="VCRedistMFCLOC" Title="Visual C++ 9.0 MFC LOC Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedistMFCLOC"/>
</Feature>
<Feature Id="VCRedistOpenMP" Title="Visual C++ 9.0 Open MP Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedistOpenMP"/>
</Feature>
Si je devais deviner, il semble que les bibliothèques Visual C++ sont en cours d'installation « à la première utilisation; » c'est-à-dire que la fonctionnalité n'est pas complètement installée jusqu'à ce que quelqu'un l'utilise. Je pense que ce serait impossible car la valeur AllowAdvertise est définie sur "non", mais je ne suis pas un expert WiX.
Merci pour le conseil. Malheureusement, cela n'a pas résolu mon problème avec la boîte de dialogue d'installation apparaissant. –