WiX (Votive) Сбор ссылок на проект (HEAT) веб-приложения ASP.Net

Что я делаю

У меня есть веб-приложение ASP.Net и проект установки WiX в Visual Studio 2010. Я могу явно собрать веб-приложение с помощью следующей команды HEAT, заданной в качестве события перед сборкой для проекта установки:

Проект "%WIX%\bin\heat.exe" "$(SolutionDir)Application.WebUI\Application.WebUI.vbproj" -o "$(ProjectDir)ProjectOutputContent.wxs" -pog Content -ag -тембрированный фрагмент -nologo -directoryid RUNTIMEFOLDER

Проект "%WIX%\bin\heat.exe" "$(SolutionDir)Application.WebUI\Application.WebUI.vbproj" -o "$(ProjectDir)ProjectOutputBinariesAndSymbols.wxs" -pog Двоичные файлы -pog Символы -ag-фрагмент шаблона - Nologo -Directoryid BINFOLDER

Имейте в виду, что папка RUNTIME и BINFOLDER являются каталогами, которые я декларативно настроил в файле WXS основного продукта.

Почему мне это не нравится

Этот подход раздражает, потому что мне нужно проверить WXS-файлы фрагментов, сгенерированные HEAT, прежде чем я смогу построить проект установки. Другое соображение заключается в том, что это веб-приложение, и мне нужно поместить двоичные файлы и символы в другой каталог (bin), чем содержимое.

Для чего я стремлюсь

Я бы предпочел использовать ссылку на проект в проекте установки Wix и просто установить для свойства Harvest значение True. Затем я мог бы собрать BinariesContentSatellites, чтобы получить нужные мне элементы в своем фрагменте, а затем установить один идентификатор каталога, на который я мог бы ссылаться в основном продукте WXS. Проблема в том, что это поместит содержимое, двоичные файлы и символы в одну и ту же папку, где мне нужны последние два, во вложенную папку bin. Я не могу добавить ссылку на этот проект дважды, каждый с разными вариантами сбора урожая.

Мой вопрос

Есть ли способ сделать то, что мне нужно, или мне нужно сохранить это событие перед сборкой? Кроме того, я рассмотрел ручную сборку фрагмента один раз без события сборки, а затем повторную сборку по мере необходимости. Я бы предпочел избежать такого подхода.

1 ответ

Решение

Отвечая на вашу тему "Почему мне это не нравится": у меня тоже была такая же проблема, но потом я нашел решение. Вам не нужно регистрировать файл фрагмента. Просто добавьте файл физически, а затем включите в свой проект

Примечание: не добавляйте файл фрагмента из проекта.

Другие вопросы по тегам