首页 文章

安装(MSI)将无法在旧版本上正确安装

提问于
浏览
2

我已经看了Why doesn't my new Windows Installer file (MSI) install properly over an older version of the MSI?但这对我没有帮助 .

我有一个程序(Office插件),它由安装程序包(MSI)安装

最初的插件和安装项目是在Visual Studio 2005中完成的 . 该解决方案现在转移到Visual Studio 2010.当我创建一个新的MSI并尝试在旧版本上安装它时,新版本在我进行修复之前将无法工作使用添加删除程序 - >修改安装 - >修复如果我先删除旧版本,则新版本安装完美 .

对于我们来说重要的是,新的MSI能够顺利删除旧版本并安装新版本,因为它被几个没有计算机经验的用户使用

RemovePreviousVersion设置为True . 我已将版本从3.1.1升级到4.0.0,并且该过程接受了新的ProductCode . 在Orca我已经将Reinstallmode设置为amus,但似乎没有任何帮助 .

谢谢!

5 回答

  • 0

    如果我理解正确,你说如果对新版本进行修复,升级是否有效?当两个包都具有共享组件(即包组件的重复GUID)时,可能会出现这种情况 . 要跟踪此问题的最佳方法是创建安装的详细日志,以便我们对其进行分析 .

    在修复过程中,与旧版本没有冲突,因为它已经被删除,并且包中的组件安装正确,这就是为什么插件工作之后的原因 .

    你能创建一个详细的日志,以便我们可以查看它吗?

  • 0

    奇怪的是,第二个日志没有明显的问题,因此应该正确安装升级 . 要获得更多详细信息,我们需要在操作系统触发自动修复时创建的详细日志 . 要创建此日志,您需要激活全局日志记录,如下所述:http://support.microsoft.com/kb/2545723

  • 1

    我试图从日志中获取更多细节,但可以找到很多信息 . 但是,我发现了另一种检测修复原因的方法 . 要获取有关按需安装原因的更多信息,请打开事件查看器(“开始 - >运行”,“eventvwr.msc”),然后在“应用程序”节点下查找以下格式的“MsiInstaller”日志消息:

    事件类型:警告事件源:MsiInstaller事件ID:1001描述:检测到产品'{000C1109-0000-0000-C000-000000000046}',功能'示例'在组件'{00030829-0000-0000-C000'请求期间失败-000000000046}”

    消息和GUID当然会在您的计算机上有所不同 . 然后,您可以检查项目中的GUID以查看哪个组件触发了修复 .

  • 0

    通过使用Orca Tool编辑msi,可以解决您的问题 .

    首先,我通过在InstallExcecuteSequence选项卡下的InstallValidate之后和InstallInitialize之前设置RemoveExistingProducts的序列号来删除现有产品 .

    谢谢,Saurabh

  • 0

    你应该告诉我们更多 . 您是否在交换版本号,产品,组件,升级和包裹代码?你使用的是哪种软件?

    通常,您在产品中保持升级代码相同 . 您需要在升级表中指定版本号,包括旧/当前升级代码 .

    取决于你在哪里安排 RemoveExistingProducts ,如果你保留组件代码,我可能是一些旧的组件没有被替换 .

    我总是在 InstallInitialize 之后安排活动 .

    检查是否调用了操作 FindRelatedProducts .

    this Post中,您可以使用WIX找到样本 .

相关问题