Как установить распространяемый пакет .NET Framework с Wix? - PullRequest
2 голосов
/ 21 января 2011

У меня есть общая задача: установить .NET Framework 3.5 во время установки моего продукта.

Я делаю следующее:

  1. Я создал настраиваемое действие X
  2. Пользовательское действие X запускает исполняемый файл Y с помощью Process.Start ()
  3. Исполняемый файл Y убивает процесс msiexec и запускает установочный пакет .NET Framework

Здесь появляются некоторые проблемы:Программа установки .NET Framework сообщает, что служба установщика Windows недоступна, и просит прекратить все остальные установки!

Я думаю, причина этого в том, что метод Process.Kill () завершает процесс некорректно.Когда я завершаю процесс msiexec с помощью Kill (), служба msiserver НЕ ОСТАНАВЛИВАЕТСЯ, но если я завершу установку, нажав кнопку Отмена, msiserver служба становится ОСТАНОВЛЕННОЙ.

Как я могу решить проблему?

1 Ответ

2 голосов
/ 26 января 2011

Вот как загрузить .NET Framework.

1) Убедитесь, что на вашем компьютере сборки установлены бустеры для .NET 3.5 и Windows Installer 3.1. Они должны быть установлены с VS. Вероятно, их можно найти здесь: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages \ DotNetFX35.

2) Отредактируйте файл проекта wix. - Щелкните правой кнопкой мыши на проекте, выберите выгрузить - Снова щелкните правой кнопкой мыши и отредактируйте wixproj

3) Добавить следующую группу товаров:

<ItemGroup>
  <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
    <ProductName>Windows Installer 3.1</ProductName>
  </BootstrapperFile>
  <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1">
    <ProductName>.NET Framework 3.5</ProductName>
  </BootstrapperFile>

4) Добавить следующее в конец файла проекта

    <Target Name="AfterBuild">
  <GenerateBootstrapper ApplicationFile="$(TargetFileName)" ApplicationName="My Application Name" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" /></Target>

5) Теперь строим. Полученный файл setup.exe и msi должны установить фреймворк.

Scott

...