Подтвердить что ты не робот

Wix и .NET Framework (предварительные требования)

Как я могу установить пакет Wix для загрузки требуемой .NET Framework, если он еще не установлен на клиентской машине? У меня уже есть условие проверить установленную версию .NET, но я не уверен, как ее загрузить и установить, когда ее не найти.

ClickOnce делает это автоматически, проверяя предварительные условия на страницах свойств. Мне просто нужно сделать это в Wix из-за некоторых других требований.

Спасибо!

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ Август 2017: Этот очень приятный ответ теперь устарел. Пожалуйста, также прочитайте другие ответы в разделе "thread" для нескольких разных параметров "начальной загрузки".


Пакет MSI, созданный Wix, не может этого сделать. Установщик Windows довольно ограничен, и одному файлу MSI (ваш установщик) не разрешено вызывать другой файл MSI (установщик .NET Framework).

Вам нужно будет создать так называемый bootstrapper (файл setup.exe), который может проверять указанные предварительные условия, загружать и устанавливать их по мере необходимости, а затем запускает установщик MSI.

Один из способов создания загрузчика - использовать Visual Studio или задачу MSBuild GenerateBootstrapper. Здесь ссылка дает более подробную информацию:

http://wix.mindcapers.com/wiki/Bootstrapper

Если вы хотите предоставить только один установщик своим пользователям, вы можете создать самонадувающийся установочный пакет, содержащий файл setup.exe и ваш пакет MSI. Вы можете сделать это с помощью iexpress, который поставляется с Windows.

Вот еще одна ссылка, дающая пример: http://www.clariusconsulting.net/blogs/pga/comments/42831.aspx

Ответ 3

DotNetInstaller также рекомендуется многими разработчиками как хороший и надежный загрузчик.

UPDATE: обновленный URL-адрес для DotNetInstaller, август 2017 г.

Ответ 5

В wix 3.6, используя загрузчик, все, что вам нужно добавить .net 4.0 как необходимое условие для загрузки, если это необходимо..

a) Добавьте ссылку на файл WixNetFxExtension.dll в проект приложения Bootstrapper/управляемого Bootstrapper

b) Добавьте следующее в качестве первого элемента в цепочке.

<PackageGroupRef Id="NetFx40Web"/>

Это действительно так!

Дополнительная информация здесь: документация wixnetfxextension