-2

我正在使用installshield爲產品開發安裝程序,並且我的自定義操作的ActionText(當前操作描述)更新出現問題。InstallShield(Windows安裝程序)操作文本未針對自定義操作進行更新

我已經按照這些步驟在這裏:http://helpnet.flexerasoftware.com/installshield17helplib/ActionTextSettings.htm這是非常合理的,應該工作,但我的自定義操作不會更新UI中的動作文本。

我在想,因爲我的自定義動作運行並等待長時間運行的進程結束,也許它會阻止任何線程負責更新動作文本。

現在我寫了,它似乎沒有道理,但我不知道還有什麼可以做到這一點!

的自定義操作的主要細節是:

Filename & Command line: wscript.exe "invisible.vbs" "longrunningbatch.bat" 
Return Processing:  Synchronous 
In-Script Execution:  Commit Execution in System Context 

而且invisible.vbs包含:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, True 

,上面一行是隱藏的shell窗口和「真」,確保外殼沒有按直到批處理文件運行完畢纔會返回。

我也根據鏈接將我的自定義操作添加到操作文本列表中,並將其與字符串關聯。

應該正常工作嗎?

其他人都經歷過這個嗎?

回答

-2

好吧,

所以我發現這個職位:http://community.flexerasoftware.com/archive/index.php?t-82772.html,基本上說,自從我的自定義操作被設置爲提交執行時,安裝在有效的時間內完成它運行,因此沒有點更新進度文本。

所以我的情況的解決方案是將我的自定義操作移動到InstallFinalize之前並切換到「延遲執行」。

希望這可能有助於某人。

1

首先,你需要刷新你的Windows安裝程序,因爲如果你已經將操作從提交改爲延遲並且對你沒有問題,那麼你已經做了一些不尋常的事情。延遲操作是針對以與安裝有關的某種方式修改系統的操作。提交操作是完成相關延遲操作完成的任何工作(例如,延遲操作修改某個系統文件。提交操作刪除未修改的系統文件的備份)。此外,如果您有延遲操作,那麼您還應該有一個回滾操作,在用戶取消安裝或失敗時撤消延遲操作完成的任何操作。

以下兩個鏈接點幫助您在正確的方向:

http://blogs.flexerasoftware.com/installtalk/2011/10/i-take-it-all-back-using-windows-installer-msi-rollback-actions.html

http://www.installsite.org/pages/en/isnews/200108/index.htm

其次,如果所有的自定義操作確實是更新進度對話框中的作用的文字,那麼你根本就不需要它。 Flexera沒有記錄這一點,但您可以爲通過直接編輯器構建的任何自定義操作設置操作文本。爲此,請在「ActionText」表中添加條目,其中「操作」列是您的自定義操作的名稱,「描述」列是您要顯示的文本。

+0

感謝您的回覆(比其他一些人不會被提及並且已經對我的問題和答案進行了兩次投票)。如果我可以將有問題的行爲從提交移到延遲,那麼你完全正確,但在這種情況下,實際上它應該始終處於延遲執行狀態。此外,您有關回滾操作的權利。我已經有了這個地方! :)一般來說,我很喜歡IS,明顯不如一些,因此完全歡迎幫助和建議。 – Andy

+0

此外,自定義操作不只是更新文本,這有點奇怪,但感謝您的建議。實際上,自定義操作將安裝打印機驅動程序和打印機。 – Andy

相關問題