2015-07-03 144 views
0

我使用Transform創建了一個Windows安裝包,使其成爲多實例。我的mst文件更新某些註冊表項組件的ProductCode和GUID。這是每臺機器安裝。現在,我無法卸載我的產品,如:無源mst卸載

  1. 我的MST文件從原來的位置刪除
  2. TRANSFORMSSECURE策略設置爲1

安裝程序會嘗試在原始位置找到MST文件,無法做到這一點,並卸載失敗。 如何讓我的產品在這兩種情況下卸載?

一些額外的信息。 我看到我的msi和mst文件被緩存在「c:\ Windows \ Installer」文件夾中。 但不知何故安裝程序不會嘗試從緩存中獲取mst。 如果沒有設置TransformsSecure策略,一切工作都正常。在這種情況下,我的mst文件會自動緩存在「c:\ Windows \ Installer {358e77a7-464b-4588-b538-a79fceb0ffa8}」文件夾中。

回答

0

您可能需要在某處發佈完整的詳細卸載日誌,但如果由於您的1 AND 2或因爲1或2而無法卸載,我不清楚(對不起)。因此,有一定的猜測因爲它符合你的確切情況。

但是,如果mst已從安裝程序緩存中刪除,則Windows將嘗試在原始安裝源中找到它,就像緩存的MSI文件丟失時一樣。但是,安全轉換不允許轉到原始安裝源(例如,它們只能從安全緩存位置檢索,而不能從DVD中檢索),因此如果緩存的位置丟失,卸載將失敗。所以這很正常 - 安全轉換需要在安全位置和其他地方訪問mst。是的,如果轉換不安全,它可以使用安裝源。

有時系統帳戶失去對安裝程序高速緩存位置的訪問權限,並且這將具有相同的結果。它無法在安全位置找到mst,但轉換是安全的,因此無法使用原始安裝源,因此操作失敗。

所以日誌中的細節可能會有所幫助。它是否得到(說)系統錯誤5試圖獲得mst?還是它說爲什麼它不能使用它呢?有沒有試圖解決它不做的源代碼,因爲轉換是安全的?

+0

對不起,我現在不能發佈日誌,我的工作計算機在這個週末不可用。但是這裏有更多關於我在做什麼的細節。 即使我的msi和mst在其源位置不可用,我也需要讓我的產品卸載。 我需要支持TransformsSecure模式,從Server 2008開始默認爲1。 如果兩個條件均爲True,則卸載時出現問題。如果其中一個是假的,沒關係。 –

+0

我使用下面的命令進行安裝:MSIEXEC -i 「d:\ TEMP \ MyProduct.msi」 TRANSFORMS = 「d:\ TEMP \ MyProduct.mst」 MSINEWINSTANCE = 1 使用完整路徑MST是很重要的,否則卸載試圖找到甚至d:\ Temp \ MyProduct.msi。 –

+0

我正在檢查已安裝產品列表中的MyProduct註冊表項,並查看生成的緩存MyProduct.msi和MyProduct.mst在c:\ WIndows \ Installer中的名稱。這些緩存的文件真的在該文件夾中,並且完全匹配原始文件。轉換註冊表項僅指定一個項目:d:\ Temp \ MyProduct.mst,值爲「 .mst。 當我檢查卸載日誌時,發現使用了緩存的msi,但從未提及緩存的mst。 –