2015-06-22 1112 views
2

在升級過程中,捆綁包執行wix包輸出「錯誤1316:指定的帳戶已存在」。一個Windows安裝程序如何輸出這個錯誤代碼?恐怕沒有太多關於它的文檔。Windows msi:錯誤1316:指定的帳戶已存在

我們以前發佈過一個包含單個msi包的產品,現在我們正在準備一個包含此msi包的新版本的wix包的升級。原始msi包和更新之間的產品代碼和文件名未更改。

編輯:現在的msi包不支持升級。當用戶需要升級(只要它是一個重大的升級,次要升級或小更新),他必須先手動卸載以前的包...

編輯2:我只是刪除到UTIL擴展編譯引用和安裝程序似乎工作正常...我仍然需要充分測試它。

回答

1

升級MSI要求MSI具有新的ProductCode,遞增的ProductVersion(在前3個字段中)和相同的UpgradeCode。所以我不清楚你是否真的得到升級,這取決於Burn部分認爲你在做什麼。由於您具有相同的ProductCode,因此無法進行升級。 (您需要MSI中的MajorUpgrade元素才能正確升級)。因此,您是否正在進行實際的完整升級存在一些疑問。如果您的意圖是用完全升級替換已安裝的MSI,並使用更高版本的產品,請使用MajorUpgrade。

因此,Burn可能已經決定通過重新安裝MSI文件來進行就地更新(而且這更像是一個補丁而不是更新),這是相關的,因爲您不會說是否有任何自定義操作或WiX util函數(它們仍然是自定義操作),它們創建一個用戶帳戶。如果這樣做,那麼錯誤的最可能原因是Burn通過重新安裝MSI文件重新安裝新的MSI作爲更新,並且一些自定義操作再次運行,並且是的,該用戶仍然存在,因爲還沒有實際卸載,將刪除它。或者你的MSI的ProductVersion是一樣的,你得到了維修模式修復,所以自定義動作會再次運行。

我會得到一個詳細的升級日誌,看看到底發生了什麼。

這裏有很多猜測,因爲你說你想要升級,但是你的MSI並不是爲實際升級而構建的,並且你不會說如果你有WiX util用戶在那裏創建一個用戶帳戶。你也不會說你是否已經增加了新的MSI的ProductVersion,所以再次導致更多的猜測可能會導致Burn的行爲。詳細日誌會顯示它是否是自定義操作問題或其他問題,以及您正在執行的更新(如果有)。

+0

請參閱我的編輯。此外,wix包中是否有內置的功能來首先卸載軟件包?我們可以編輯msi包來支持升級,但這需要我們做很多工作...... – Brainless

+0

另外我還不明白怎麼才能出現錯誤「error 1316:指定的帳號已經存在」。我會很感激任何解釋 – Brainless

+0

據我所知,正如我所說,你實際上沒有安裝程序升級,因爲你需要用戶卸載舊版本(爲什麼?)。據我所知,你有一個全新的安裝假設用戶卸載了舊版本。如果您使用與已安裝的產品代碼相同的產品代碼來安裝相同的MSI,那麼您將獲得維護模式,基本上是修復,並且基本上會經過重新安裝。因此自定義操作util會再次運行,並且無法創建已存在的用戶。再次猜測,沒有關於代碼/版本等的所有信息。 – PhilDW

1

我最近碰到這個。 對我來說,這對我來說是保持舊版本和新版本安裝程序的名稱一樣。 不知道爲什麼它可以工作,但在使用msi時,一些最佳實踐是保持安裝程序的名稱相同。

的幾個環節來支持的情況下 -

  1. http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/KB2918614-td7596942.html

  2. https://community.flexerasoftware.com/showthread.php?189045-Upgrade-failed-with-Error-1316&highlight=error+1316+account+already+exists

1

我有他的同樣的問題,既然win10不允許你從網上運行修復工具,我做了以下hack卸載我的Windows 10筆記本電腦上的華碩智能手勢。

1.你需要僞裝MS網站,以爲你的電腦不是Win10。我安裝了一個Chrome加載項,允許我將Chrome瀏覽器的用戶代理更改爲IE9和以前版本的Windows:Mozilla/5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident/5.0)

2,本可以讓你看到的fixit按鈕,下載該工具的一個便攜版本(如果你需要使用它在非聯網的客戶端)

3.I下載和解壓到我的下載庫一個名爲fixitp的文件夾。

4.如果我直接運行該exe文件,我會得到一些令人討厭的腳本錯誤。我採取的措施是導航到Resources文件夾,然後導航到Troubleshooters文件夾。

5.我運行了Program_Install_and_Uninstall.diagcab,它運行並允許我成功卸載Asus SmartGesture程序。

6.然後我們從他們的網站安裝了新版本的華碩智能手勢。

我懷疑你不能卸載的任何已安裝的應用程序可以通過這個相同的進程解決 - 只是沒有遇到任何其他問題。

祝你好運。

+0

當我打算升級時,我意外降低了投票率,現在不讓我改變它 - 對不起!這對我有效。 –

相關問題