Windows Installer XML相对路径的修补程序

时间:2014-02-14 09:52:29

标签: msbuild wix patch pyro wix3.8

我正在使用Microsoft Team Foundation Server来管理和部署我的应用程序的设置。 我的设置是具有相对路径的WiX设置。

体育专业。 部件

<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为我的应用程序生成补丁。 我正在使用带有操纵构建事件和其他链接器信息的纯Wix补丁项目

(预制 - 火炬) (Post Build - Pyro) (链接器附加参数 - 输出为wixmsp)

当我构建我的Patch时,我得到579Failures。 (1×)

错误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:\补丁\客户\升级\设置\ ComponentMain.wxs

我确定它没有正确解析sourcesetups的路径。 有人能帮助我吗? Rob Arnson,Rob Mensching,Heath Steward?请:)

1 个答案:

答案 0 :(得分:0)

要解决此类问题,您可以为TFS编写自定义构建活动,以使用完全限定的路径更新WiX配置文件中的变量。例如,您可以创建一个构建活动,该活动接收配置文件的路径,变量的名称和该变量的值,然后将新值写入配置文件。您可以将配置文件与相关路径保持在源代码管理中,但是构建将更新配置文件以使用仅用于构建的完全限定路径。

如果您不熟悉创建自定义构建活动,那么就会有一个很棒的博客系列here。该链接适用于TFS 2010,但该过程与TFS 2012类似。