2014-02-14 36 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