2011-01-21 3 views
2

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

я сделать следующее:

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

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

Я думаю, причиной этого является то, что метод Process.Kill() завершает процесс неверным. Когда я убиваю процесс msiexec через Kill(), служба msiserver НЕ ЗАПУСКАЕТСЯ, но если я закончу настройку, нажав кнопку Отмена, msiserver сервис станет STOPPABLE.

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

+0

Это логическая копия этого: http://stackoverflow.com/questions/2335287/what-is-the-best-practise-to-create-msi-with-some-other- child-msi-as-prerequisite –

+0

Я должен использовать описанные выше шаги вместо сторонних продуктов, таких как dotNetInstaller и т. д. – Dmitrii

+0

Могу ли я спросить, почему? –

ответ

2

Вот как загрузочная платформа .NET.

1) Убедитесь, что на вашей машине сборки установлены ускорители .NET 3.5 и Windows Installer 3.1. Они должны быть установлены с VS. Их можно найти здесь: C: \ Program Files (x86) \ Microsoft SDK \ 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 должен установить фреймворк.

Скотт

+0

Он работает как шарм. – gangt

Смежные вопросы