2014-02-14 71 views
0

我正在使用Microsoft Team Foundation Server來管理和部署我的應用程序的設置。 我的設置是具有相對路徑的WiX設置。Windows Installer 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>

設置是否正確建立。 問題:我正在使用Torch和Pyro爲我的應用程序生成補丁。 我使用的是純維克斯修補工程與操縱構建事件和其他鏈接信息

(預構建 - 火炬) (後生成 - 焦) (鏈接器的其它參數 - 爲wixmsp輸出)

當我構建我的補丁時,我收到了579個失敗。 (1×)

錯誤776命令 「」 C:\程序文件(x86)\維克斯工具箱V3.8 \ BIN \ pyro.exe」 Patch.wixmsp -out Patch.msp -t AnwendungBaseline diff.wixmst 「與代碼退出103
C:\ Program Files文件(x86)的\的MSBuild \微軟\維克斯\ 3.x版\ wix2010.targets

和(578x)

錯誤322系統無法找到文件'.. \ SourceFiles \ Anwendung.exe'。 C:\ Patch \ Client \ Upgrade \ Setup \ ComponentMain.wxs

我確定它沒有正確解析sourcesetups的路徑。 有人可以幫我嗎? Rob Arnson,Rob Mensching,Heath Steward?請:)

+0

具有完全合格的路徑,但與tfs(Team Foundation Server)結合使用時,相對路徑的使用是不可避免的。 – MMI

回答

0

要解決這樣的問題,您可以編寫一個自定義構建活動,以便使用完全限定路徑更新您的WiX配置文件中的變量。例如,您可以創建一個構建活動,其中包含配置文件的路徑,變量的名稱和該變量的值,然後將新值寫入配置文件。您可以將配置文件的相對路徑保存到源代碼管理中,但是構建會更新配置文件以使用完全限定的路徑進行構建。

如果您不熟悉創建自定義構建活動,那麼有一個很棒的博客系列here。該鏈接適用於TFS 2010,但TFS 2012的過程與此類似。

+0

謝謝,但那不是問題。問題是,我用.wixmsp文件來生成補丁(使用Torch和Pyro)。 wixmsp文件僅包含對文件的引用。現在我使用.wixout文件,它包含所有文件。現在TFS將與它一起工作,我不必在生成差異之前安裝設置。我對相對路徑的測試是成功的。感謝您的幫助。 – MMI