2014-12-11 90 views
0

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

<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文件?请建议。

+0

“虚拟路径”可能不是此处使用的最佳术语。 – user145400 2014-12-11 18:35:26

回答

0

假设您已经在使用热量生成组件,可以使用-var <VariableName>指定变量。按照docs这将:

替代文件/ @来源= “SourceDir” 一个带预处理或WiX的变量(例如-var var.MySource将成为文件/ @来源=“$(var.MySource) \ myfile.txt的”和-var wix.MySource将成为文件/ @来源= “!(wix.MySource)\ myfile.txt的”。

我用这通过在生成后运行的命令热事件的原始项目,并通过-var var.$(ProjectName).TargetDir。由此产生的File将有Source="$(var.ProjectName.TargetDir)\whatever.dll"。只要ProjectName作为wix安装项目的引用添加,然后该变量将被正确解决。