如何在.wxs文件中声明虚拟路径?

时间:2014-12-11 05:38:29

标签: wix setup-project

我是使用.wxs文件创建安装项目的新手。我使用的是WIX 3.9。我想在.wxs文件中更改虚拟路径的物理路径。 目前.wsx文件正在使用这样的物理路径 -

<Component Id="cmp2CB74B07C01493F593A258BAE09C0B1C" Guid="08CD4620-DE67-4C7A-A97A-212AB5BA5E52">
  <File Id="filCF6108D60D7B1865907043E2ABFE30DF" KeyPath="yes" Source="C:\ProjectName\Client\Bin\AjaxControlToolkit.dll" />
</Component>

我想使用像这样的虚拟路径 -

  <Component Id="cmp2CB74B07C01493F593A258BAE09C0B1C" Guid="08CD4620-DE67-4C7A-A97A-212AB5BA5E52">
    <File Id="filCF6108D60D7B1865907043E2ABFE30DF" KeyPath="yes" Source="~\ProjectName\Client\Bin\AjaxControlToolkit.dll" />
    </Component>

我怎么能在.wxs文件中这样做?请建议。

1 个答案:

答案 0 :(得分:0)

假设您已经在使用heat来生成组件,可以使用-var <VariableName>指定变量。根据{{​​3}},这将:

  

使用预处理程序或wix变量替换文件/ @ Source =“SourceDir”(例如-var var.MySource将成为File / @ Source =“$(var.MySource)\ myfile.txt”和-var wix。 MySource将成为File / @ Source =“!(wix.MySource)\ myfile.txt”。

我通过在原始项目的post-build事件中运行heat命令并传入-var var.$(ProjectName).TargetDir来使用它。生成的FileSource="$(var.ProjectName.TargetDir)\whatever.dll"。只要添加ProjectName作为对wix安装项目的引用,就可以正确解析变量。