如何使用 Visual Studio 安装程序项目扩展创建升级安装程序

问题描述 投票:0回答:2

我在部署项目 QNA

上问过这个问题

我正在使用 Microsoft Visual Studio 安装程序项目扩展来构建新的安装程序,以更新 10 年前的项目,但我似乎无法创建不需要先删除旧版本的安装程序。

我正在使用 VS 2019:如果我从项目部署菜单中选择“安装”,则新版本将在本地安装,但如果我构建它并运行 MSI,则会收到“该程序的另一个版本已安装...”并且我是否必须要求我的客户卸载并重新安装该应用程序?他们不会喜欢的。

我已更新输出程序集中的 AssemblyFileVersion 和 AssemblyVersion 属性,但这没有帮助。

那么如何创建更新安装程序?部署项目上没有“发布”菜单选项,并且项目主菜单上的“发布”不可用。旧的方法是更新产品代码,但我现在找不到在界面中执行此操作的方法。

我尝试手动更改 .vdproj 文件中的产品代码和软件包代码 - 这可以让安装程序运行,但它不会安装,因为它说安装了较新的版本:我尝试生成新的 GUID 并手动更新现有的,但没有成功。

.net deployment setup-deployment
2个回答
13
投票

答案是:

除了您所做的更改之外(更新输出程序集中的 AssemblyFileVersion 和 AssemblyVersion 属性),您还需要更新安装项目的版本。

  1. 在解决方案资源管理器中选择安装项目,然后按 F4 显示属性
  2. 增加“版本”
  3. 在出现的询问您是否要更新产品代码的对话框中选择“是”
  4. 再次保存并构建安装项目。

    这将启用升级场景。

这确实有效。我在此处添加它的原因是 F4 未在 .vdproj 上下文菜单中列出,因此实际上无法发现它。

还有一个怪癖:如果您使用 Git,那么它可能不会自动检出部署项目文件(.vdproj),因此您必须手动编辑它(添加一个空格就足够了)并重新加载项目,然后进行更改,无论如何都会重写项目。


1
投票

要扩展 @stuartd 的答案和 @Joel 的评论,请确保 .vdproj 属性 (F4) 中的 RemovePreviousVersionsDetectNewerInstalledVersion 设置为 true。这应该可以解决控制面板的添加/删除程序实用程序中保留的任何先前版本。 UpgradeCode 应在各个版本甚至框架之间保持相同。

来自:VS 2010 安装项目不会删除以前的版本

© www.soinside.com 2019 - 2024. All rights reserved.