【问题标题】:VisualStudio 2010 setup project to InstallShield seamless transitionVisualStudio 2010 安装项目到 InstallShield 无缝过渡
【发布时间】:2014-03-31 20:27:13
【问题描述】:

我刚刚安装了 VS2013。由于不再有安装项目,我安装了 InstallShield LE。我使用了集成导入向导,并希望任何较新的版本都能自动更新使用 VS Setup 项目创建的旧版本。好吧,我曾经更改过产品版本,这促使我更改了产品代码,仅此而已。现在我认为这也应该适用于 InstallShield,所以我更新了产品版本并手动生成了产品代码。我安装了较旧的应用程序并尝试使用这个新的 IS LE 设置重新安装它。结果是:安装了两个应用程序,它们的名称和路径完全相同(安装在同一目录中),但版本不同。我真的可以在“程序和功能”中看到 2 个同名的程序。我检查了升级代码,两者都是一样的。我做错了什么?

谢谢

【问题讨论】:

    标签: visual-studio-2010 visual-studio installshield


    【解决方案1】:

    检查安装类型,即按用户或按机器。这两个版本必须相同,否则 Windows Installer 将跳过删除旧版本,您最终会在您的计算机上同时使用这两个版本。

    安装新版本时创建的verbose log应该也有帮助,可以在里面搜索FindRelatedProducts和RemoveExistingProducts标准动作,看看为什么老版本没有被删除。

    【讨论】:

    • 在 VS2010 安装项目中,有 InstallAllUsers 属性,设置为 false。在新的(导入的)IS LE 项目中,(在一般信息部分)ALLUSERS 选项设置为 1(每台机器安装)。所以我把它改成了“”,这应该是每个用户安装,但它没有帮助。它仍然与旧版本一起安装。
    • 我会试试日志,看看是否有帮助。那我会告诉你的。
    • 好吧,在日志中我发现了这个:MSI (c) (5C:40) [13:04:01:320]: Doing action: FindRelatedProducts Action 13:04:01: FindRelatedProducts.搜索相关应用 操作开始时间 13:04:01:FindRelatedProducts。 MSI (c) (5C:40) [13:04:01:321]:FindRelatedProducts:当前安装是按用户进行的。产品“{7CF44E5C-B8DB-4BF0-8759-061FC61CD808}”的相关安装是每台机器。跳过... 操作于 13:04:01 结束:FindRelatedProducts。返回值 1。
    • 所以我卸载了旧的应用程序并为所有用户安装了它(VS2010安装程序让我们在安装过程中选择)并再次安装它,现在它说:MSI(c)(EC:5C)[12 :54:45:283]:执行操作:FindRelatedProducts 操作 12:54:45:FindRelatedProducts。搜索相关应用 动作开始 12:54:45:FindRelatedProducts。操作于 12:54:45 结束:FindRelatedProducts。返回值 1。但它仍然与旧版本一起安装。
    • 对于 RemoveExistingProducts 的回答:MSI (s) (50:14) [13:14:58:253]:执行操作:RemoveExistingProducts 操作 13:14:58:RemoveExistingProducts。删除应用程序 操作开始时间 13:14:58:RemoveExistingProducts。操作于 13:14:58 结束:RemoveExistingProducts。返回值 1。
    【解决方案2】:

    最后我们能够解决问题。您需要在升级路径部分放置一个条目。奇怪的是,您需要手动执行此操作,而 IS 导入向导不会自动完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 2011-05-16
      • 2013-10-15
      • 2016-10-11
      • 2011-06-04
      相关资源
      最近更新 更多