如何在组件内使用wixproj文件中定义的属性



我在wixproj文件的PropertyGroup中声明了一个属性。

<PropertyGroup>
<Permit>false</Permit>
</PropertyGroup>

我使用这个属性作为Condition来运行几个命令BeforeBuildAfterBuild

<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 ?>

相关内容

  • 没有找到相关文章

最新更新