是否可以阻止用户在命令行上设置属性?

时间:2017-09-26 16:42:13

标签: c# properties wix windows-installer custom-action

在wix生成的msi包中,如何阻止用户通过命令行覆盖属性?

我知道属性可以通过标记PUBLICprivate来确定范围。但是,当我使用私有属性作为启动条件时,我的安装程序在ExecuteSequennce

中失败
<Condition Message="!(loc.LCMsg)">private = "true" OR Installed</Condition>

我在自定义操作中设置属性,该操作计划在UISequence中运行。我希望这个属性是私有的,因此用户不能只在命令行上分配值true,因此跳过检查这个条件应该实际实现的。

我现在已经使用了一个公共属性,并且在调用我自己的CA之前使用了一个type51 CA将其值设置为false。如果用户要在命令行上设置该值,它将被类型51 CA覆盖:

    <CustomAction Id="Type51Init" Property="PUBLIC" Value="false" />
<InstallUISequence>
  <Custom Action="Type51Init" Before="MyCA">NOT Installed</Custom>
</InstallUISequence>

这看起来相当hacky,我真的想知道是否有另一种方法阻止用户通过命令行设置属性。

0 个答案:

没有答案