2015-06-22 1104 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

当我打算升级时,我意外降低了投票率,现在不让我改变它 - 对不起!这对我有效。 –

相关问题