2010-09-20 87 views
2

我正在使用InstallShield Limited Edition for Visual Studio 2010來創建安裝程序,並且我正在嘗試添加可執行的自定義操作。InstallShild自定義操作參數

我在一個安裝到安裝目錄的exe中的自定義動作。 自定義操作需要使用位於安裝目錄中的另一個文件。

如何獲得安裝目錄的路徑到我的exe文件?我嘗試將[INSTALLDIR]作爲參數,但它轉換爲「C:\ Program」而不是正確的目錄(「C:\ Progam Files \ MyCompany \ MyProduct」)。我嘗試了[TARGETDIR],但是它轉換爲E:\(也是錯誤的)。

任何想法?

+0

編寫自定義安裝操作時請小心。關於何時應該或不應該寫這些內容以及如何減輕隨之而來的風險,有很長的背景故事。 – 2010-09-20 14:07:26

回答

0

發現問題。

使用[INSTALLDIR]是正確的。問題在於PowerShell。讀取C:\ Program Files ... 作爲C:\ Program。

的問題是在這裏討論:

http://www.leeholmes.com/blog/2006/05/05/running-powershell-scripts-from-cmd-exe/

+1

我會建議您確保在命令行中加入引號[INSTALLDIR],例如「[INSTALLDIR] MyExe.exe」,但如果你仍然遇到PowerShell問題,那將無濟於事。 – 2010-09-20 13:33:27

0

EXE自定義操作是非常有限的。如果我使用的是InstallShield LE,我會創建一個C#WiX/DTF自定義操作並將其用於WiX合併模塊,然後在InstallShield LE項目中使用該合併模塊。這給你非常強大的解決方案。