Развертывание и запуск приложения в начале установки WIX - PullRequest
1 голос
/ 18 мая 2010

Я пытаюсь развернуть и запустить приложение (консольное приложение C #) в начале установки MSI с WIX, но возникают некоторые трудности.

Приложение должно запускаться до того, как произойдет какое-либо действие веб-сервера, но после того, как файлы будут скопированы из MSI в целевое местоположение.

Я могу запустить приложение, но только если я действительно скопировал приложение в каталог до запуска MSI. Если я этого не сделаю, я получаю сообщение об ошибке, касающееся приложения, которого нет в журналах MSI. Таким образом, в основном я думаю, что это связано с последовательностью запуска, которую я использую, и мне нужно убедиться, что приложение существует до его запуска.

Интересно, может ли кто-нибудь из вас, хорошие люди, помочь мне?

Требование заключается в том, что приложение должно запускаться как первое, что делает MSI WIX (задолго до того, как произойдет какая-либо часть веб-сервиса).

Соответствующие биты Wix следующие.

    <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" />

Любая помощь или ссылки с благодарностью.

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

См. WiX InstallExecuteSequence . Вы используете

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

Но на данный момент файлы еще не скопированы. Поэтому я думаю, что вы должны использовать одно из следующих:

<Custom Action='LaunchUpdaterRunFirst' After='InstallFiles' />
<Custom Action='LaunchUpdaterRunFirst' Before='ConfigureIIs' />
0 голосов
/ 18 мая 2010

Вместо добавления исполняемого файла в список устанавливаемых файлов попробуйте ввести его как двоичный файл, т.е.

<Product ......>

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

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

</Product>
...