WiX неопределенная переменная препроцессора

Я начинаю использовать 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 знает о ссылке проекта, которая не используется в сборке?


  
  

Кто-либо может просветить меня на этом?

44
задан Yan Sklyarenko 13 January 2016 в 08:48
поделиться

1 ответ

Как вы уже заметили, ваш сценарий сборки NANT не использует файл WixProj .

Вы смешиваете два разных способа построить настройку WIX здесь:

  1. Вы можете использовать инструменты командной строки Candle.exe и Light.exe . Это игнорирует файл .wixproj . Это то, что вы делаете в своем сценарии сборки NANT. Чтобы пройти значения для препроцессорных переменных, таких как $ (var.myproject.targetdir) , используйте параметры, такие как -dmyproject.targetdir = c: \ foo .

  2. Вы можете автосит файл .wixproj с votive (дополнение к Visual Studio for Wix). Как и все файлы проекта Visual Studio, файл WixProj на самом деле является файлом MSBuild, который можно построить с помощью msbuild.exe . Подобные переменные $ (var.myproject.targetdir) автоматически устанавливаются задачами MSBuild для создания установов WIX, если существует правильный эталон проекта.

Я рекомендую вам построить файл wixproj с заданием NAT . Это гарантирует, что ваша сборка NANT делает то же самое, что при создании настройки вручную из Visual Studio.

49
ответ дан 26 November 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: