Можно ли установить или запустить dotnetredist.exe (или любой произвольный EXE) как часть .MSI? - PullRequest
3 голосов
/ 05 марта 2010

Предположим, у меня есть MSI, в котором в качестве предварительного условия используется .NET Framework.
Я знаю, что MSI, сгенерированный из проекта установки VS2008, обнаружит, когда этот предварительный запрос отсутствует, и даст указание пользователю установить его.

Q1 . Возможно ли, технически, вызвать во время выполнения MSI файл dotnetredist.exe (или, я полагаю, любой произвольный EXE-файл) для обработки этого предварительного требования, а затем продолжить установку? Я имею в виду, я думаю, что это не так, если я ограничусь сгенерированной VS2008 установкой, но что если я использовал WIX? Что если я был готов написать собственное действие? Что если бы я мог вручную отредактировать таблицу MSI с помощью Orca или через скрипт? Является ли это возможным?

Q2 . Это законно? Это разрешено лицензией?

Ответы [ 3 ]

4 голосов
/ 05 марта 2010

Техническое ограничение заключается в том, что один сеанс установщика Windows не может запустить другой. Например, один файл MSI не может установить другой файл MSI.

Запуск исполняемых файлов или сценариев из файла MSI возможен, если они не запускают сеансы установщика Windows. Это называется настраиваемым действием .

Программа установки .NET определенно не может быть запущена из MSI, поскольку она использует сеансы установки Windows. Вместо этого вы должны создать загрузчик setup.exe, который сначала устанавливает .NET, а затем запускает ваш MSI. В документации по wix есть тема, которая описывает, как создать такой загрузчик с помощью msbuild. Это на самом деле не специфично для wix; Вы можете использовать задачу генератора загрузчика с любым файлом MSI.

Что касается юридического аспекта, я не вижу необходимости беспокоиться. В конце концов, он называется распространяемым .

0 голосов
/ 05 марта 2010

Q1. ... или, я думаю, любой произвольный EXE ...

Q2. Это законно? Это разрешено лицензией?

Законность перераспределения любого произвольного EXE-файла регулируется лицензией EXE-файла. «dotnetredist» специально лицензирован для перераспределения, поэтому никаких проблем нет.

MSI 4.5 разрешит установщик цепочки, в определенных пределах.

0 голосов
/ 05 марта 2010

Установка .Net может потребовать перезагрузки. Я не знаю, как ты справишься с этим. Прервать установку? Подавить перезагрузку? Завершить установку? Я не думаю, что транзакция MSI работает через перезагрузки.

У вас должна быть копия Visual Studio или свободно доступного Windows SDK, который включает в себя .Net SDK / автономный .Net Frameword SDK и согласен с лицензией и условиями лицензионного соглашения для публикации dotnetredist.exe с вашим приложением. *

...