2009-09-30 41 views
3

我正在嘗試修復已經發布的基於Windows Installer的安裝程序。該修補程序用於卸載軟件包時發生的錯誤。爲此,我想提供一個在卸載前應用的.mst轉換文件。產品安裝後是否可以使用轉換?或者可以在開始卸載之前將轉換應用於已安裝的.msi文件?我使用的命令行如下所示:如何在卸載時應用Msi轉換?

msiexec.exe /x {Product-Code} TRANSFORMS={Path-To}\bugfix.mst 

回答

5

轉換隻適用於首次安裝或作爲補丁的一部分內部應用。要解決這樣的問題,您應該考慮應用次要升級(儘管如果大小是主要問題,您應該能夠將次要升級打包爲補丁)。確保通過v作爲REINSTALLMODE屬性的一部分,以便新包取代舊包;一般vomus是一個很好的財產價值。

3

您可以通過編輯應用程序的HKEY_CLASSES_ROOT \ Installer \ Products條目在事後應用轉換。

找到您的產品,添加一個名爲TRANSFORMS的值並將其指向您的新變換。然後,當卸載啓動時,它將使用該轉換。

+0

天才。這也適用於那些HKEY_CURRENT_USER的人,對於那些好奇的人。 – StormPooper

0

好的。我知道這是一箇舊帖子。但是除了上述之外,還有一些東西。

Vividos運氣不錯,可以使用REINSTALLMODE = VOMUS將錯誤修復應用於MSI,其中現有的緩存MSI將與新安裝程序一起「重新緩存」。

但是,如果錯誤在MSI安裝期間應用的轉換中,則'v'失敗。 'v'迴避MSI,但不包括應用於它的轉換。

在這種情況下,用戶必須從「C:\ windows \ installer [ProductCodeOfTheMsi]」(使用VBScript或其他)手動重新緩存MST。您會在這裏找到舊的MST,並且您的BUFIX.MST應該與上述位置中的舊MST具有相同的名稱並將其替換。

如果你想按照布賴恩提到的方式去瀏覽註冊表路線;將MST名稱更改爲新的MST名稱及其位置。