2014-02-14 6 views
0

Я использую Microsoft Team Foundation Server для управления и развертывания установок для своих приложений. Мои настройки - это установки WiX с относительными путями.Установщик Windows XML относительный Путь к исправлению

p.e. Компоненты

<Component Id="Anwendung.exe" Directory="INSTALLLOCATION" Guid="*"> 
<File Id="Anwendung.exe" KeyPath="yes" Source="$(var.SourceFiles)\Anwendung.exe" /> 
</Component> 

Variables.wxi:

<Include>

<?define SourceFiles = "..\OutputFiles"?>

</Include>

Setups правильно строить. Проблема: я использую Torch и Pyro для создания патчей для своих приложений. Я использую чистый Wix Patch Project с манипулируют сборки событий и дополнительной информации линкера

(Pre Строительства - Torch) (Post Build - Пиро) (Linker дополнительные параметры - выходные в wixmsp)

Когда я создаю свой патч, я получаю 579Failures. (1x)

Ошибка 776 Команда "" C: \ Program Files (x86) \ WiX Toolset v3.8 \ Bin \ pyro.exe»Patch.wixmsp -out Patch.msp -t AnwendungBaseline diff.wixmst "завершался с кодом 103.
C: \ Program Files (x86) \ MSBuild \ Microsoft \ WiX \ v3.x \ wix2010.targets

и (578x)

Ошибка 322 система не может найти файл '.. \ SourceFiles \ Anwendung.exe'. C: \ Patch \ Client \ Upgrade \ Setup \ ComponentMain.wxs

Я уверен, что это неправильно разрешает пути из источников. Может ли кто-нибудь мне помочь? Роб Арнсон, Роб Меншинг, Хит Стюард? Пожалуйста:

+0

с полнофункциональными путями он работает, но в сочетании с tfs (Team Foundation Server) использование путей релятивизма является неизбежным. – MMI

ответ

0

Чтобы обойти такие проблемы, вы можете написать настраиваемую операцию сборки для TFS для обновления переменных в конфигурационном файле WiX с помощью полностью определенных путей. Например, вы можете создать активность сборки, которая принимает путь к конфигурационному файлу, имя переменной и значение для этой переменной, а затем записывает новое значение в файл конфигурации. Вы можете сохранить конфигурационный файл с относительными путями в исходном элементе управления, но затем сборка обновит файл конфигурации, чтобы использовать полный путь только для сборки.

Если вы не знакомы с созданием пользовательских действий по созданию, на нем есть отличная серия блога here. Ссылка предназначена для TFS 2010, но процесс аналогичен для TFS 2012.

+0

Спасибо, но это не проблема. Проблема заключалась в том, что я использовал файлы .wixmsp для создания патча (с Torch и Pyro). Файлы wixmsp содержат только ссылки на файлы. Теперь я использую файлы .wixout, которые состоят из всех файлов. Теперь TFS будет работать с ним, и мне не нужно устанавливать установки перед созданием diff. Мой тест с релятивными путями был успешным. Спасибо за помощь. – MMI