【问题标题】:Visual studio setup project remove previous versionVisual Studio 安装项目删除以前的版本
【发布时间】:2018-07-23 07:26:13
【问题描述】:

我正在使用 VS2013 创建一个安装项目。 我有两个问题

  • 删除以前的版本:好的,我已经完成了(标记删除以前的版本并更改版本号...)但是有没有办法通知用户软件已经安装,它将被替换为新版本?消息,弹出....

  • checkBox/radioButton Choices :如果用户选择一个或另一个复选框,是否可以将用户的选择存储到文件中或显示不同的页面?

【问题讨论】:

  • old studio 的安装项目是带有预制脚本和内容的 Windows Installer 模块。手动创建它们而不是使用工作室当然会这样做,但这很乏味:您必须形成正确的 .xml 文件,使用 ORCA 或类似的编辑器等。替代方法是使用 WiX Toolset (Windows Installer XML) 之类的东西。它是一个更强大的工具,您看到的 Studio 和 Office 安装程序都是使用它制作的。 WiX 应该具有 Visual Studio 集成。
  • 好的,非常感谢!我不知道 ORCA,但 Wix 也是我的另一个选择!!! :) 您是否知道 WIX 中的一些示例已经完成以加快速度?

标签: c++ visual-studio-2013 setup-project visual-studio-setup-proje


【解决方案1】:

如何告诉用户,这是您需要为您正在编写的软件做出的设计决定,这取决于您。当然,弹出窗口是一种可能的方式。

保存用户选择:同样,您有多种选择。

%appdata% 中某处的本地配置文件,很可能是文件夹名称为您的包名称的文件夹中的文件。

或者注册表中 HKCU\Software 中的某个位置用于每个用户的设置,这些肯定是这样的。与 file 选项一样,我将使用包的名称创建一个子键,并将配置数据存储在该子键中。

【讨论】:

    【解决方案2】:
    1. Visual Studio 安装项目不支持此功能。尝试使用 Orca 或任何其他工具添加此功能并非易事。此外,在 WiX 中也不是特别容易。我怀疑原因是大多数人都知道他们正在进行升级并且只是希望它能够工作。有时还存在技术问题 - 在 UI 序列中,您可以确定正在进行升级(并获取旧版本的 ProductCode),但随后您需要调用 MsiGetProductInfo(或等效项)的代码以获取名称和版本那个旧版本。但是,UI 序列并未提升,您无法始终获得该信息,并且您可能正在升级几个旧版本。无论如何,您都无法在 Visual Studio UI 序列期间运行代码。因此,在基于 Windows Installer 的设置中很少出现“您正在升级此旧版本”的原因有很多。

    2. 基本上和这些同类型的问题:

    c# setup project get radio buttons value

    c# Visual Studio Project Installer save data from Textbox into Textfile

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多