【问题标题】:How to declare virtual path in .wxs file?如何在 .wxs 文件中声明虚拟路径?
【发布时间】:2014-12-11 05:38:29
【问题描述】:

我在使用 .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 文件中执行此操作?请提出建议。

【问题讨论】:

  • “虚拟路径”可能不是在这里使用的最佳术语。

标签: wix setup-project


【解决方案1】:

假设您已经在使用热量来生成组件,您可以使用-var &lt;VariableName&gt; 指定一个变量。根据docs,这将:

用预处理器或 wix 变量替换 File/@Source="SourceDir"(例如 -var var.MySource 将变为 File/@Source="$(var.MySource)\myfile.txt" 和 -var wix。 MySource 将变为 File/@Source="!(wix.MySource)\myfile.txt"。

我通过在原始项目的构建后事件中运行 heat 命令并传入 -var var.$(ProjectName).TargetDir 来使用它。生成的File 将具有Source="$(var.ProjectName.TargetDir)\whatever.dll"。只要将ProjectName 添加为wix setup 项目的引用,那么该变量就会被正确解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 2011-04-24
    • 2014-11-21
    相关资源
    最近更新 更多