在旧版本上安装新版本的部署项目

sbe*_*rli 24 deployment windows-installer deployment-project

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

Aka*_*ava 27

这很棘手,你必须做以下步骤,

  1. 将删除以前的安装设置为True
  2. 设置将新版本检测为True
  3. 每次部署时,C#程序的版本都必须增加
  4. 您应该将安装程序的版本更改为更高版本,它会要求您更改产品代码,选择是.
  5. 不要更改升级代码,让它相同.

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

  • 如果文件被修改,则必须更改它的程序集版本,无论文件是什么,您的项目或任何包含的第三方库.每个专业图书馆都会更改文件版本. (2认同)

CRi*_*ice 13

我试了几个场景,也许这会帮助别人节省一些时间

如果程序集版本更改和项目安装程序版本更改(同时也更改了ProductCode Guid) - >应用程序安装在现有版本的顶部 - > dlls和exe版本更新 - >安装的IF路径不同,现有的最初安装的项目文件将被删除从他们安装的地方.(以及保留的文件)

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

如果仅更改程序集版本,或仅更改项目安装程序版本(不更改ProductCode指南) - >要求用户手动删除应用程序 - >如果它们继续并先从控制面板中删除,则可以安装应用程序和dll exes更新到新版本

如果只有项目安装程序版本更改(同时也改变了ProductCode Guid) - > MSI进行安装过程,但dll和exe不会更改版本 - 它们按照程序集版本,并被替换为相同程序集构建版本的文件 - > IF安装到的路径不同,现有的最初安装的项目文件将从安装位置删除.(保留的任何文件保留)

如果项目安装程序版本更改(同时更改了ProductCode Guid)并且程序集版本低于安装版本 - >安装将开始,最后用户被通知安装失败为旧版本.


vol*_*ody 5

设置安装项目属性RemovePreviousVersions True

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