Windows msi:错误1316:指定的帐户已存在

时间:2015-06-22 08:37:04

标签: wix windows-installer bundle upgrade

在升级过程中,捆绑包中的wix包的执行输出“错误1316:指定的帐户已存在”。 Windows安装程序如何输出此错误代码?我担心没有太多关于它的文件。

我们之前发布了一个由单个msi软件包组成的产品,现在我们正在准备升级,其中包含一个包含此msi软件包新版本的wix软件包。原始msi包和更新之间的产品代码和文件名没有更改。

编辑:目前,msi软件包不支持升级。当用户需要升级时(无论是主要升级,次要升级还是小更新),他必须先手动卸载以前的软件包......

编辑2:我刚刚删除了对util扩展的引用以进行编译,安装程序似乎工作正常......我仍然需要对其进行全面测试。

7 个答案:

答案 0 :(得分:4)

就像MrFusion一样,我在卸载/安装另一个程序时遇到了这个问题。不幸的是,该答案中的链接不再有效,并且重定向到列出了许多简单解决方案的页面,唯一的帮助除外。该程序“程序安装和卸载”当前在以下位置可用:https://support.microsoft.com/en-us/help/17588/fix-problems-that-block-programs-from-being-installed-or-removed

它为我解决了这个问题。

答案 1 :(得分:2)

升级MSI要求MSI具有新的ProductCode,递增的ProductVersion(在前3个字段中)和相同的UpgradeCode。所以我不清楚你实际上是在升级,这取决于Burn部分认为你在做什么。它无法进行升级,因为您具有相同的ProductCode。 (您需要在MSI中使用MajorUpgrade元素才能进行适当的升级)。因此,对于您是否正在进行实际的全面升级存在疑问。如果您的目的是使用完全升级替换已安装的MSI,并使用更高版本的产品,则使用MajorUpgrade。

因此,Burn可能决定通过重新安装MSI文件来进行就地更新(这更像是补丁而不是更新),这是相关的,因为您没有说明您是否有任何自定义操作或WiX工具用于创建用户帐户的函数(它们仍然是自定义操作)。如果你这样做,那么你错误的最可能的原因是Burn通过重新安装MSI文件重新安装了你的新MSI作为更新,并且一些自定义操作再次运行,是的,那个用户仍然在那里,因为还没有实际卸载会删除它。或者MSI的ProductVersion是相同的,并且您获得了维护模式修复,因此自定义操作将再次运行。

我会得到一份详细的升级日志,以确切了解正在发生的事情。

这里有很多猜测,因为你说你想要升级,但你的MSI并不是为了实际升级而构建的,而且你没有说你是否有WiX util用户来创建用户帐户。您也没有说您是否已经增加了新MSI的ProductVersion,因此再次导致更多关于Burn可能做什么的猜测。详细日志将显示它是自定义操作问题还是其他内容,您正在执行哪种更新(如果有)。

答案 2 :(得分:2)

我有同样的问题,因为win10不允许你从网上运行fixit工具,我做了以下黑客在我的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.我下载并解压缩到名为fixitp的文件夹中的下载库。

4.如果我直接运行exe,我会收到一些讨厌的脚本错误。我做的就是导航到Resources文件夹,然后导航到Troubleshooters文件夹。

5.我运行了Program_Install_and_Uninstall.diagcab,它运行并允许我成功卸载Asus SmartGesture程序。

6.然后,我从他们的网站安装了华硕智能手势的新版本。

我怀疑任何你无法卸载的安装应用程序都可以通过同一个进程解决 - 只是没有遇到任何其他问题。

祝你好运。

答案 3 :(得分: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

答案 4 :(得分:1)

我有同样的问题卸载另一个程序。这个Fix-It为我解决了这个问题:https://support.microsoft.com/en-us/mats/program_install_and_uninstall/en

更新说明:不再需要在Windows 10上模拟旧的用户代理来下载修复文件。

答案 5 :(得分:1)

您可能需要更改MSI的“ packagecode”(注意:不是“ ProductCode”)。您可以在摘要信息流中找到它。

在尝试创建升级MSI程序包时遇到了这个问题。使用Orca更改固定的“ packagecode”。

答案 6 :(得分:0)

对我来说,当我尝试卸载它时,nodejs就会发生这种情况。对于我而言,解决的方法是下载已安装的相同版本的nodejs(8.11.1),然后从msi安装程序文件中卸载该版本。