2010-05-18 11 views
1

J'essaie de déployer et d'exécuter une application (application de console C#) au début de l'installation de MSI avec WIX, mais avec quelques difficultés.Déploiement et exécution de l'application au début de l'installation de WIX

L'application doit être exécutée avant que les actions du serveur Web ne se produisent, mais une fois que les fichiers ont été copiés du MSI vers l'emplacement cible.

Je peux obtenir l'application pour fonctionner mais seulement si j'ai réellement copié l'application dans le répertoire avant que j'exécute le MSI. Si je ne fais pas cela, je reçois une erreur concernant l'application qui n'existe pas dans les journaux MSI. Donc, fondamentalement, je pense que cela a à voir avec la séquence de lancement que j'utilise, je dois m'assurer que l'application existe avant qu'elle ne soit lancée. Je me demandais si l'un de vous pouvait me dépanner.

L'exigence est que l'application doit s'exécuter comme la première chose que fait le MSI WIX (bien avant que l'une des parties du service Web ne se produise).

Les bits pertinents du Wix sont les suivants.

<CustomAction Id='LaunchUpdaterRunFirst' FileKey='serverUpdaterRunFirstExe' ExeCommand='' Return='ignore' /> 

...

<InstallExecuteSequence> 
     <Custom Action='CA_BlockOlderVersionInstall' After='FindRelatedProducts'>NEWERVERSIONDETECTED</Custom> 
     <RemoveExistingProducts After="InstallInitialize" /> 
     <Custom Action='LaunchUpdaterRunFirst' After='InstallInitialize' /> 
     <Custom Action='LaunchInstaller' After='InstallFinalize'><![CDATA[ REMOVE <> "ALL" and UILevel <> 2]]></Custom> 
    </InstallExecuteSequence> 

...

 <Component Id="ServerInstaller" DiskId="1" Guid="9662EC72-1774-4d22-9F41-AD98A5DCD729"> 
     <File Id="serverUpdaterRunFirstExe" Name="MyCompany.Server.Updater.RunFirst.exe" Source="$(var.SOURCEPATH)\MyCompany.Server.Updater.RunFirst.exe" /> 
     <File Id="serverUpdaterRunFirstExeConfig" Name="MyCompany.Server.Updater.RunFirst.exe.config" Source="$(var.SOURCEPATH)\MyCompany.Server.Updater.RunFirst.exe.config" /> 

Toute aide ou références très apprécié.

Répondre

0

Au lieu d'ajouter le fichier exécutable à la liste des fichiers à installer essayer d'entrer dans un fichier binaire à savoir

<Product ......> 

    <Binary Id="serverUpdaterRunFirstExe" SourceFile="$(var.SOURCEPATH)\MyCompany.Server.Updater.RunFirst.exe" /> 

    <CustomAction Id="LaunchUpdaterRunFirst" BinaryKey="serverUpdaterRunFirstExe" /> 

</Product> 
+0

cela ne fonctionnera probablement pas parce que le fichier MyCompany.Server.Updater.RunFirst.exe.config est manquant. – wimh

-1

Voir la WiX InstallExecuteSequence. Vous utilisez actuellement

<Custom Action='LaunchUpdaterRunFirst' After='InstallInitialize' /> 

Mais à ce moment les fichiers ne sont pas encore copiés. Donc, je pense que vous devez utiliser une des opérations suivantes:

<Custom Action='LaunchUpdaterRunFirst' After='InstallFiles' /> 
<Custom Action='LaunchUpdaterRunFirst' Before='ConfigureIIs' />