2011-05-09 72 views
4

我有一個基於MSI的安裝包。 MSI通過組策略進行部署,並將MST(轉換)應用於該部署。應用MSI轉換時出錯

我現在試圖在以前通過組策略部署軟件的計算機上安裝相同的MSI。該軟件通過添加/刪除程序卸載,並通過雙擊MSI文件嘗試重新安裝軟件。

這樣做,但是,結果在下面的Windows安裝程序錯誤:

Error applying transforms. Verify that the specified transform paths are valid. 

我必須承擔,這是因爲有問題的機器是受MSI的組策略的部署,併爲此有一些註冊表鍵在某些地方告訴它應用一個不存在的MST文件。

有沒有一種方法可以防止這種情況(通過某些命令行開關,也許),除了從問題組策略中刪除此機器?

+0

你到底想在這臺機器上做什麼?如果您嘗試修復損壞的安裝,則可以使用控制面板中的添加或刪除程序(程序和功能),或者通過GPO重新部署該程序包。如果您嘗試安裝該軟件包的修改版本,則可能是最好的小更新:http://msdn.microsoft.com/en-us/library/aa367575(VS.85).aspx – 2011-05-09 20:38:11

+0

在這種情況下,我們的客戶想要試用我們產品的新版本。我們有一個自動更新(非MSI)機制,但我們沒有能力有選擇地將其輕易推出。所以我們要求他們卸載現有版本並通過更新的MSI安裝新版本。 – RMD 2011-05-09 20:57:52

+0

在這種情況下,一個小的更新將是最好的。 – 2011-05-10 07:25:21

回答

4

問題是如何防止發生這種錯誤。如果MSI不支持更新,但客戶端想要安裝最新版本,則必須進入註冊表項以刪除導致此問題的密鑰。

我很想在卸載程序中添加一個自定義操作來檢測這些特定的鍵以防止下一次安裝失敗。

引起了不存在的變換運行的關鍵是:

HKEY_CLASSES_ROOT\Installer\Products\<product_code> 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group 
Policy\AppMgmt\{<product_code>} 

我想刪除這些(如果存在)上卸載將保證下一個安裝成功。雖然,我希望能找到比這更好的答案。

+0

ykay,如果運行安裝程序的用戶沒有管理權限,這也可以工作嗎?我們有這樣的情況,用戶不允許寫入註冊表接受HKEY_CURRENT_USER。 – km1 2013-08-30 19:58:05

+0

@ km1安裝程序需要使用提升的權限運行才能刪除這些密鑰。 – ykay 2013-09-03 21:33:31

0

對我而言有效的是將每個地區和語言設置更改爲英語/美國。顯然,這個轉換是語言相關的,我的窗口有一些葡萄牙語設置。