2010-02-10 4 views

Répondre

1

J'ai résolu ce problème en utilisant une action personnalisée intégrée de WiX où vous venez de définir l'option de ligne de commande avant d'exécuter l'action personnalisée. Voici un exemple de la façon dont nous le faisons:

<CustomAction Id='RegisterExtensions.SetProperty' Property='QtExecCmdLine' 
    Value='"[INSTALLDIR]RegisterExtensionDotNet20_x86.exe" -i "[INSTALLDIR]LogicNP.EZShellExtensions.dll" "[INSTALLDIR]LogicNP.EZNamespaceExtensions.dll" "[INSTALLDIR]MyNse.dll"'/> 

<CustomAction Id='RegisterExtensions' BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check"/> 

Cela doit être fait également pour 64 bits. J'ai la version séparée 64 bits de l'action personnalisée aussi:

<CustomAction Id='RegisterExtensions64.SetProperty' Property='QtExecCmdLine' 
     Value='"[INSTALLDIR]RegisterExtensionDotNet20_x64.exe" -i "[INSTALLDIR]LogicNP.EZShellExtensions.dll" "[INSTALLDIR]LogicNP.EZNamespaceExtensions.dll" "[INSTALLDIR]MyNse.dll"'/> 

<CustomAction Id='RegisterExtensions64' BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check"/> 

Vous devez planifier le processus d'inscription également dans le fichier construire WiX:

<Custom Action="RegisterExtensions.SetProperty" Before="RegisterExtensions">(NOT Installed)</Custom> 
<Custom Action='RegisterExtensions' After="InstallFinalize">(NOT Installed)</Custom> 
<Custom Action='RegisterExtensions64.SetProperty' Before='RegisterExtensions64'>(NOT Installed) AND (VersionNT64)</Custom> 
    <Custom Action='RegisterExtensions64' After='RegisterExtensions'>(NOT Installed) AND (VersionNT64)</Custom> 

Une conséquence est que vous devez inclure le EZNamespaceExtension exécutables dans votre installateur.

+0

Merci pour votre aide. J'espérais simplement que ce serait plus simple ;-) – Wienczny

+1

Nous espérons tous travailler avec l'installation sur Windows, mais chaque fois que je me fais frapper à la face :-) – tronda

0

Vous devez ajouter des entrées de registre spécifiques à l'espace de noms pour que cela fonctionne. La plupart de ces entrées nécessitent des privilèges d'administrateur. L'installation avec UAC ON n'est donc pas possible à moins que l'utilisateur ne l'autorise.

+0

J'ai configuré wix pour exiger des privilèges élevés. L'extension d'espace de noms J'essaie de créer un programme d'installation pour votre EZNamespaceExtension. Est-il possible d'utiliser l'auto-enregistrement? Ou devrais-je trouver toutes les clés de registre nécessaires? – Wienczny