Я начинаю использовать WiX, чтобы сделать автоматизированные сборки для создания msi's моих c# проектов и сталкиваюсь с ошибкой "Неопределенный $ 'переменной препроцессора (var. MyProject. TargetDir)'"
Я использую последний WiX v3.0.5419. В моем wxs файле я пытаюсь использовать переменные препроцессора, которые перечислены на этой веб-странице (http://blogs.msdn.com/jrock/archive/2008/01/29/complete-list-of-candle-preprocessor-variables.aspx)
Я добавил ссылку для MyProject к .wixproj и если я открываюсь, это в Блокноте I видит ссылку.
MyProject
{guid}
True
Это - мой сценарий сборки nant, который я использую для создания msi. Возможно, это - потому что .wixproj знает о ссылке проекта, которая не используется в сборке?
Кто-либо может просветить меня на этом?
Как вы уже заметили, ваш сценарий сборки NANT не использует файл WixProj
.
Вы смешиваете два разных способа построить настройку WIX здесь:
Вы можете использовать инструменты командной строки Candle.exe
и Light.exe
. Это игнорирует файл .wixproj
. Это то, что вы делаете в своем сценарии сборки NANT. Чтобы пройти значения для препроцессорных переменных, таких как $ (var.myproject.targetdir)
, используйте параметры, такие как -dmyproject.targetdir = c: \ foo
.
Вы можете автосит файл .wixproj с votive (дополнение к Visual Studio for Wix). Как и все файлы проекта Visual Studio, файл WixProj на самом деле является файлом MSBuild, который можно построить с помощью msbuild.exe
. Подобные переменные $ (var.myproject.targetdir)
автоматически устанавливаются задачами MSBuild для создания установов WIX, если существует правильный эталон проекта.
Я рекомендую вам построить файл wixproj с заданием
NAT . Это гарантирует, что ваша сборка NANT делает то же самое, что при создании настройки вручную из Visual Studio.