2014-09-12 29 views
0

我有一個在InstallShield中創建的Installscript MSI項目。我希望能夠在安裝應用程序時將安裝目錄附加到添加/刪除程序程序和功能)條目。此應用程序可以在工作站上多次安裝到不同的文件夾位置,所以我想用某種方式在添加/刪除程序中直觀地將它們分開。將INSTALLDIR添加到添加/刪除程序條目中的產品名稱

眼下,添加/刪除程序進入我的產品是這樣的:

我的應用程序名稱

我希望它看起來像這樣:

我的應用程序名稱 - 我的應用程序安裝文件夾(替換爲[INSTALLDIR])

我該怎麼做?

+0

您可以多次安裝相同的程序嗎?你可能想重新考慮你的設計...... – 2014-09-12 20:14:21

+0

如果使用相同的GUID,這甚至可能如何?我幾乎可以肯定msi安裝程序應該帶你去更改/修復/刪除... – ssnobody 2014-09-12 20:27:44

+0

這是一個支持多租戶的應用程序,目前可以通過Citrix訪問。 – 2014-09-12 20:59:34

回答

1

我不相信有基於註冊表項值,這樣做支持的方式和他們來自哪裏:

http://msdn.microsoft.com/en-us/library/aa372105(v=vs.85).aspx

是用來顯示數據,而事實MSI ProductName屬性是固定的文本,我認爲在安裝啓動後您無法更改。當然,只需使用一些腳本或自定義操作將ProductName屬性設置爲[ProductName]加[INSTALLDIR]即可測試。

因此您必須自己更新卸載註冊表數據中的註冊表項。在安裝結束時,當條目存在時,通過附加INSTALLDIR值,使用自定義操作代碼修改它們。

這不是人們用MSI設置做的事情,我不會推薦它。該值可能會溢出字段長度,因爲ProductName限制爲63個字符。

如果問題是可能有多個卸載條目,並且您想驗證用戶是否正在卸載正確的某個,那麼您可能會添加一些對話框以便以某種方式顯示實際版本,如果將某個安裝位置保存在某處。 ARPNOREMOVE屬性將阻止直接卸載,然後您可以強制修改對話框執行更改,然後使用更多詳細信息進行卸載。總體思路是:

http://devdare.blogspot.com/2012/10/how-to-force-gui-uninstall-using.html

相關問題