我在wixproj
文件的PropertyGroup
中声明了一个属性。
<PropertyGroup>
<Permit>false</Permit>
</PropertyGroup>
我使用这个属性作为Condition
来运行几个命令BeforeBuild
和AfterBuild
<Exec Condition=" '$(Permit)' == 'true' " Command="--command here--" />
在我的Product.wxs
文件中,我定义了一些要基于定义的Permit
属性包含或排除的组件。
<ComponentGroup Id="ProductComponents">
<ComponentRef Id="SomeComponent"/>
<!--Component to add based on the property-->
<?if $(Permit)=true ?>
<ComponentRef Id="PermissionComponent"/>
<?endif?>
</ComponentGroup>
Anytime I build the project, I get this error.
预处理器变量'$(Permission('格式错误。变量必须具有前缀(如"var."、"env."或"sys."(,并且名称至少为1字符长。如果需要文字字符串"$(Cache(",请使用"$$(缓存("。
我已经尝试了所有指定的前缀,但仍然不起作用。有什么事情我做得不对吗?
您可以将变量添加到wixproj
文件中的<DefineConstants>
wix设置中。像这样(可能已经定义了其他常量,你可能想保留这些。还要注意配置,你可能需要添加它来进行发布/调试等(:
<PropertyGroup>
<Permit>false</Permit>
</PropertyGroup>
...
<DefineConstants>Debug;Permit=$(Permit)</DefineConstants>
然后只需使用:
<?if $(var.Permit)=true ?>