2011-11-17 33 views
4

我正在使用installsheild 2012總理創建一個基本的msi項目。我有兩個問題。帶自定義動作的installshield

1.)MSI需要在創建正在安裝的應用程序的文件夾和文件後運行自定義exe文件。安裝應用程序時只需執行一次。

2)微星還需要告訴定製EXE正在運行,用戶選擇用什麼語言來在運行MSI。

我不知道問題2.線索至於問題1,這裏是我嘗試如下所述:

我現在已經安裝它的方式,即使在創建產品的文件和文件夾之前,它在開始時也會運行一次。這裏下面是我的設置

enter image description here

,並單擊下一步轉到下面的屏幕....

enter image description here

現在,爲了僅文件後,並運行自定義的exe如果我在上面的第一張圖片中將In-Script執行從'Immediate Execution'更改爲'Commit Execution',並進入下一個屏幕,那麼我會嘗試使用任何組合的錯誤 enter image description here

請幫我看看這裏。謝謝你的時間。

回答

5

對於腳本內部執行組合您應該使用deferredcommit執行。如果您的自定義操作需要管理員權限,則應推遲或提交系統上下文

遞延或承諾的行動不會InstallUISequence運行,因此對插入進序列對話框確保安裝UI序列組合設置爲:

<Absent from sequence> 

InstallFinalize之前運行遞延行動。既然你想在安裝文件後運行自定義操作,您可以設置安裝執行序列組合到:

安裝語言存儲在ProductLanguage財產。所以,你可以在你的自定義操作命令行use it directly,例如:

[ProductLanguage] 

此屬性包含語言標識。您可以在這裏找到列表的標識符:http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx

+0

謝謝。我設法弄清楚了。然而,我使用'After InstalInitialize'而不是'After InstallFiles'。稍後會出現一些問題嗎? – user20358

+1

在安裝文件之前執行InstallInitialize。因此,您的自定義操作將無法訪問已安裝的文件。 –

相關問題