2016-03-08 62 views
0

安装程序为Wix 3.10.2和Visual Studio 2015.使用wix安装项目和自定义操作项目。无法在Visual Studio中正确地为WiX指定变量

我想为我的项目创建一个包含javados的片段。我读过here来设置预处理器变量(或系统变量)。我选择在项目中包含变量定义。我试图预处理器VAR

<DefineConstants>JavaDocBase=c:\javadocs</DefineConstants> 

,只是设置一个正常的变量:

<WixVariables>JavaDocBase=c:\javadocs</WixVariables> 

无论是结束了工作。

预生成事件:

<PropertyGroup> 
<PreBuildEvent>"$(WIX)bin\heat.exe" dir "$(var.JavaDocBase)" -cg JavaDocs_JSP -gg -scom -sreg -sfrag -srd -dr INSTALLDIR -var var.JavaDocBase -out "$(ProjectDir)\JavaDocs_JSP_Fragment.wxs"</PreBuildEvent> 
</PropertyGroup> 

我似乎总是收到错误:

Unhandled Exception:The expression """.JavaDocBase" cannot be evaluated. Method 'System.String.JavaDocBase' not found. 

我已经试过var.JavaDocBase,wix.JavaDocBase,env.JavaDocBase和刚刚JavaDocBase ..而最后一次将允许命令运行,但它没有放在正确的路径上,所以我没有进一步提前。

是否有可能复制以前链接教程中的内容,如果有,我做了什么错误?

回答

0

使用它作为属性而不是$(var.JavaDocBase)尝试$(JavaDocBase)。

还在wixproj文件中设置属性。

<PropertyGroup> 
    <JavaDocBase>c:\javadocs</JavaDocBase> 
    <DefineConstants>$(DefineConstants);JavaDocBase=$(JavaDocBase)</DefineConstants> 
</PropertyGroup> 
+0

如何添加该属性 - 可以从视觉工作室GUI完成,还是我必须卸载项目并手动编辑wixproj文件?看起来它定义了两次,不是吗?一旦作为xml标签并且曾经作为预处理器定义? – Jon

+0

是的,您必须卸载项目,您可以执行的定义部分,或者在wixproj或预处理器定义中。如果你需要我可以发布代码... –

+0

我似乎无法通过将JavaDocBase设置为预处理器定义来做出任何事情......我确实创建了一个新的属性组,并将其添加为新的属性(没有PP-Def)并且工作正常,我觉得很困惑,并且留下了一些Q:为什么PP-Def方法不工作?可以在外部(在文件中)定义这个以允许一个位置进行配置? – Jon

相关问题