【问题标题】:Installing a new version of a deployment project over old version在旧版本上安装新版本的部署项目
【发布时间】:2019-06-18 02:40:34
【问题描述】:

我有一个部署项目,它不允许我安装旧版本。 msi 文件说首先从添加/删除程序中卸载程序。这不是一个好的用户体验。我该怎么做才能让安装程序先删除软件,然后再安装新版本?

【问题讨论】:

  • 这和 C# 编程语言有什么关系?

标签: deployment windows-installer deployment-project


【解决方案1】:

这很棘手,您必须执行以下步骤,

  1. 将删除以前的安装设置为 True
  2. 将检测新版本设置为 True
  3. C# 程序的版本必须随着每次部署而增加
  4. 您应该将安装程序的版本更改为更高版本,它会要求您更改产品代码,请选择“是”。
  5. 不要更改升级代码,保持不变。

如果您没有正确执行第 3 步,安装程序仍会安装并保留旧文件,如果您更改了内容,则每个文件的文件版本必须是新的。

【讨论】:

  • 我认为“远程以前的安装”是指“RemovePreviousVersions”
  • 关于如何在不更改 ProductCode guid 的情况下实现这一目标的任何想法? (小更新)stackoverflow.com/questions/3114637
  • “你的 C# 程序的版本必须随着每次部署而增加”你的意思是每个接触的程序集,不是吗?
  • @mbx,我不知道你在问什么,但我的意思是 AssemblyVersion 属性必须更改,或者应该设置为 1.0。*
  • 如果文件被修改,它的汇编版本必须改变,无论是哪个文件,你的项目或任何包含的第三方库。每个专业图书馆都会更改文件版本。
【解决方案2】:

我尝试了一些场景,也许这会帮助某人节省一些时间

如果程序集版本更改并且项目安装程序版本更改(ProductCode Guid 也更改) -> 应用安装在现有应用之上 -> dll 和 exe 版本得到更新 -> 如果安装到的路径不同,现有的初始安装的项目文件将从安装位置删除。 (以及此后制作的文件)

如果程序集版本更改并且项目安装程序版本更改(没有更改 ProductCode Guid) -> 要求用户手动删除应用程序 -> 如果他们先从控制面板中删除,则可以安装应用程序并将 dll 和 exe 更新到新版本

如果只有程序集版本更改,或者只有项目安装程序版本更改(没有 ProductCode Guid 更改) -> 要求用户手动删除应用程序 -> 如果他们先从控制面板中删除,则可以安装应用程序并将 dll 和 exe 更新到新版本

如果只有项目安装程序版本发生变化(ProductCode Guid 也发生变化) -> MSI 完成安装过程,但 dll 和 exe 不更改版本 - 它们与程序集版本一致,并替换为相同程序集构建版本的文件 -> 如果安装到的路径不同,现有的初始安装的项目文件将从安装位置删除。 (此后制作的任何文件仍然存在)

如果项目安装程序版本发生变化(ProductCode Guid 也发生变化)并且程序集版本低于安装版本 -> 安装将开始,最终用户被告知安装失败,因为旧版本。

【讨论】:

    【解决方案3】:

    设置设置项目属性RemovePreviousVersions True

    但您必须在两个设置应用程序中使用相同的 UpgradeCode

    【讨论】:

      【解决方案4】:

      您有时可以在安装新版本后执行此操作,旧产品将保持不变。

      您需要更改 RemoveExistingProducts 的序列号,它必须安排在 安装 Validate 操作和 InstallInitialize 。您可以通过 ORCA 完成此操作

      对于 Ex InstallValidate=1400 安装初始化 =1500

      然后 RemoveExistingProducts =1450

      【讨论】:

        【解决方案5】:

        如果您使用的是visual studio 2012或更高版本,

        1. 如果解决方案文件夹下已经有安装程序文件夹,只需打开安装程序下的项目助手并双击它即可。

        2.打开项目助手后会看到应用信息,在这里可以输入你要修改的版本。

        【讨论】:

          猜你喜欢
          • 2017-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-16
          • 2022-12-01
          • 1970-01-01
          相关资源
          最近更新 更多