在升级过程中,捆绑包中的wix包的执行输出“错误1316:指定的帐户已存在”。 Windows安装程序如何输出此错误代码?我担心没有太多关于它的文件。
我们之前发布了一个由单个msi软件包组成的产品,现在我们正在准备升级,其中包含一个包含此msi软件包新版本的wix软件包。原始msi包和更新之间的产品代码和文件名没有更改。
编辑:目前,msi软件包不支持升级。当用户需要升级时(无论是主要升级,次要升级还是小更新),他必须先手动卸载以前的软件包......
编辑2:我刚刚删除了对util扩展的引用以进行编译,安装程序似乎工作正常......我仍然需要对其进行全面测试。
答案 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时的一些最佳实践是保持安装程序的名称相同。
支持案例的几个链接 -
答案 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安装程序文件中卸载该版本。