如何确保我的winform应用程序部署覆盖旧版本

fis*_*ead 8 c# deployment winforms

我已经从VS2008部署项目为我的项目创建了一个msi安装包.但是在升级安装时遇到问题,以前安装的版本不会被覆盖.如何确保以前安装的版本被覆盖?

Oli*_*ver 12

  1. 在Visual Studio中,在解决方案资源管理器中选择安装项目
  2. 打开"属性"窗口
    • 不要右键单击并选择属性.
    • 选择视图 - 属性窗口
  3. 将RemovePreviousVersions设置为true
  4. 将版本增加到更高的数字
  5. 在即将出现的消息框中选择是

如果您构建并部署了此新设置,则将删除具有旧版本号的设置.

重要提示:安装版本号完全独立于您的应用程序或程序集版本号!


Joh*_*hnB 12

(奥利弗的回答是正确的,但我想添加图片和更多细节)

解决方案中选择安装项目,然后打开" 属性"窗格("工具箱"旁边的选项卡):

在此输入图像描述

  • 确保DetectNewerInstalledVersion为真(这是默认值)
  • 设为InstallAllUserstrue
  • 设为RemovePreviousVersionstrue
  • 更新Version号码并按Enter键
  • 在按Enter键后,Visual Studio将询问您是否要为其生成新的GUID ProductCode,单击"是"

此外,您需要更新每个版本号项目在您的解决方案,因为安装程序将只替换DLL文件,如果他们的版本号已递增:

  • 打开每个项目的AssemblyInfo.cs并更新AssemblyVersionAssemblyFileVersion编号

或者更好的方法:

  • 从每个项目的AssemblyInfo.cs中删除AssemblyVersionAssemblyFileVersion
  • 使用这两行链接到解决方案中VersionInfo.cs文件
  • 上述步骤:正确的版本装配版本

右键单击安装项目,然后选择" 属性"(另一个" 属性"对话框):

  • Windows Installer 4.5设置为先决条件,而不是Windows Installer 3.1的Visual Studio默认值

我不确定是否所有这些步骤都是必要的,并且可能还有其他方法来设置它,但上述步骤对我有用.