我想从命令行更改msi的属性但它失败了。在msi的日志中,我可以看到我的属性使用我的值更新但在此之后它会覆盖修改此属性的操作。
更具体我写道:INSTALLFOLDER =" *"。 但是在msi数据库中有动作调用SetINSTALLFOLDER来覆盖这个值。
我问我如何跳过此操作或从命令行禁用它。
msi产品不是由我制作的。
日志:
MSI (s) (F4:1C) [15:38:41:973]: Command Line: INSTALLDIR=C:\\Users\user\AppData\Local\Temp\ugi21xcf.3lp
*
*
MSI (s) (F4:1C) [15:38:42:017]: PROPERTY CHANGE: Adding INSTALLDIR property. Its value is 'C:\\Users\user\AppData\Local\Temp\ugi21xcf.3lp'.
*
*
MSI (s) (F4:1C) [15:38:42:050]: Doing action: SetINSTALLFOLDER
MSI (s) (F4:1C) [15:38:42:050]: Note: 1: 2205 2: 3: ActionText
Action ended 15:38:42: CostInitialize. Return value 1.
MSI (s) (F4:1C) [15:38:42:050]: PROPERTY CHANGE: Adding INSTALLFOLDER property. Its value is 'C:\Tools'.
答案 0 :(得分:0)
您可以为CustomAction设置错误条件,它会覆盖您的属性,但我不推荐它,除非您对它的作用100%有信心(就像它所做的只是设置INSTALLOCATION)。为了使其更安全,您可以创建自己的CustomAction,它将使用从命令行传递的不同属性,并在SetINSTALLFOLDER CA之后立即覆盖INSTALLOCATION。