Самый быстрый путь к созданию MSI с NANT - PullRequest
2 голосов
/ 06 апреля 2011

У меня есть текущий процесс сборки, который выполняет сборку .NET с использованием MSBuild, а затем я получаю все мои DLL / EXE-файлы проекта и сторонние DLL в одном каталоге с некоторыми ресурсами в подкаталоге.

Я бы хотел упаковать этот пакет в MSI. Я посмотрел вокруг и нашел WiX, и у него есть доступные задачи. Однако, похоже, мне нужно сохранить файл .wxs со ссылками на полный список библиотек DLL. Я действительно хотел бы избежать необходимости вручную поддерживать этот файл или любой другой файл.

На самом деле у меня есть много проектов, в которых используется общий сценарий сборки, поэтому каждый проект создается согласованным образом. Поэтому я хотел бы, чтобы шаг MSI также был автоматизирован, иначе каждый проект должен поддерживать файл .wxs с текущим списком DLL + любые файлы ресурсов.

Можно ли использовать WiX или любой другой инструмент, где я могу просто указать его на каталог и заставить его упаковать каждый файл / подкаталог без необходимости в файле конфигурации?

1 Ответ

5 голосов
/ 07 апреля 2011

См. документацию для Heat (часть Wix) и используйте ее в процессе сборки.

Например, что-то вроде этого должно работать:

heat.exe dir C:\Build\Release -srd -ag -suid -cg AutoHarvestCG -out c:\Build\Setup\AutoHarvest.wxs

Затем будет автоматически сгенерировано AutoHarvest.wxs, которое будет содержать все файлы из C:\Source\Release в ComponentGroup, называемые AutoHarvestCG, которые можно включить с элементом ComponentGroupRef в любой элемент Feature.

Вам все равно придется вести файл .wxs с информацией о вашем продукте, пакете и компоненте, а также с любыми пользовательскими действиями, которые у вас могут быть.

...