com - sur - wix seo wiz




enregistrement com dll dans wix (2)

Si ce n'est pas auto-enregistré. alors comment pouvons-nous effectuer l'enregistrement dll COM lors de l'installation en utilisant WIX?

Conformément au tutoriel , j'ai utilisé l'exemple ComPlusApplication (non .net dll). Mais ça ne marche pas. Il ne parvient pas à s'inscrire.

Je peux enregistrer en utilisant regsvr32 de la ligne de commande avec succès. J'ai lu à propos de ne pas créer des actions personnalisées pour l'enregistrement des DLLs.

Quelle est la meilleure approche? Si nous devons utiliser la chaleur, où écrivons-nous les commandes et ajoutons le résultat wxs au projet principal?


Je recommande fortement d'utiliser l'outil Wix Heat.exe pour collecter toutes les données nécessaires pour enregistrer le composant com, puis référencer le fragment dans votre fichier .wxs comme ceci:

    <ComponentGroupRef Id="FooBar.dll" />

Ou incluez-le dans votre fichier .wxs comme ceci:

    <?include FooBar.dll.wxi?>

Cette méthode vous donne un contrôle total sur ce qui se passe pendant l'enregistrement / désenregistrement du composant Com.

Vous pouvez cependant toujours utiliser Regsvr32 dans un projet Wix. Mais il repose sur l'implémentation correcte des fonctions RegisterServer / UnregisterServer dans le composant COM

    <CustomAction Id="RegisterFooBar" 
                  Directory="INSTALLDIR" 
                  ExeCommand='regsvr32.exe /s "[INSTALLDIR]FooBar.dll"'> 
    </CustomAction> 
    <CustomAction Id="UnregisterFooBar" 
                  Directory="INSTALLDIR" 
                  ExeCommand='regsvr32.exe /s /u "[INSTALLDIR]FooBar.dll"'> 
    </CustomAction>

Ajoutez ensuite votre action à la séquence d'installation.

    <InstallExecuteSequence> 
        <Custom Action="RegisterFooBar" After="InstallFinalize">NOT Installed</Custom>
        <Custom Action="UnregisterFooBar" After="InstallFinalize">REMOVE="ALL"</Custom>
    </InstallExecuteSequence>

Vous pouvez essayer d'utiliser le programme heat.exe, puis référencer le fragment dans votre code wix.

Fichier heat.exe -gg -out

Un péché:

Fichier heat.exe my.dll -gg -out mon.wxs

Ps. L'ajout de -gg va générer les guids, sinon vous pouvez l'ignorer si vous voulez les ajouter manuellement.