事實上,這一直困擾着我好幾天。
傳遞給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