事实上,这一直困扰着我好几天。
传递给msiexec的参数通过罚款并正确显示在Properties集合中,如通过日志查看的。
例如:
msiexec /i setup.msi /L* log.txt TargetDir="D:\Samples\Test\" CustAddOnDir="D:\Samples\Test\AddOns\"
在日志的方式展示了你所期望:
Property(C): TARGETDIR = D:\Samples\Test\
Property(C): CUSTADDONDIR = D:\Samples\Test\AddOns\
但是当您尝试通过CustomactionData上对这些通过其中的自定义操作属性页你得到这个错误:
/addOnDir="[CUSTADDONDIR]"
这似乎愚蠢,但去掉结尾的“\”从msiexec命令行解决了这个问题。
msiexec /i setup.msi /L* log.txt TargetDir="D:\Samples\Test" CustAddOnDir="D:\Samples\Test\AddOns"
现在的问题是,尝试将TargetDir传递给您的自定义操作总是失败。
/destDir="[TARGETDIR]"
这似乎是由于尾随“\”,如果不存在,它总是被追加。如果你想让用户选择一个新目录来安装,这真的很糟糕。你会如何将这种情况引入您的自定义行为?
您需要取消转义结尾的斜线:“对象引用未设置为对象错误的实例”
/destdir="[TARGETDIR]\"
来源
2012-02-03 19:00:17
Dan
如果我未逸出我得到最后的斜线在这种情况下如何解决问题? – 2016-04-25 05:49:29