【问题标题】:Adding launch conditions to Microsoft Visual Studio Installer Projects (check app is running)向 Microsoft Visual Studio 安装程序项目添加启动条件(检查应用程序是否正在运行)
【发布时间】:2019-02-25 17:01:38
【问题描述】:

我将 Microsoft Visual Studio Installer Projects 用于我的 Hybrid Windows Forms/WPF 项目。我需要确保用户已关闭应用程序(旧版本),如果处于活动状态,在安装程序可以继续之前,这可以通过 Visual Studio 安装程序项目实现吗?

到目前为止,我所看到的只是安装程序默认向 .NET Framework 添加了一个依赖项,除非先安装该依赖项,否则它不会运行。

【问题讨论】:

  • 这种事情是自定义操作。谷歌了解更多信息。这篇文章至少会给你一个大概的思路c-sharpcorner.com/article/…
  • 嗨@Andy,是的,这正是我需要的,遗憾的是他们没有详细解释如何将 InstallerClass 链接到项目(显然你只是在输出程序集中创建一个 .cs 类/ .exe 继承自Installer,当您将其添加到它时将从自定义操作部分调用),但这对我不起作用......似乎没有太多关于它的在线信息......大多数教程都没有详细说明这一点:(

标签: c# wpf winforms windows-installer vsinstaller


【解决方案1】:

更新Windows Installer-Avoid FileinUse dialog box when Installing a package 除了RestartManager 支持之外的可能的替代选项列表。


RestartManager:MSI 的 RestartManager feature 旨在让您的应用程序在安装过程中正常关闭和重新启动:How do I add support for Windows Restart Manager to my application?(高级安装程序)

本质上:整个想法基本上是更喜欢重新启动应用程序而不是重新启动操作系统。为此:

  1. 您的应用程序调用 RegisterApplicationRestart() 并使用为其最终重启指定的命令行 - 它“注册”以进行重启管理。
  2. 您的应用程序会监视 WM_QUERYENDSESSION 消息,并在被告知时以适当的方式优雅地关闭保存数据。
  3. 然后RestartManager可以在安装完成后重启应用(重启可以禁用)。

重要性:简单地说:重新启动知识工作者 PC 是一件大事,这就是为什么您应该真正将 RestartManager 支持添加到您的应用程序中。它对于您可能以 16000 台 PC 为目标的大规模部署非常有帮助。还要避免将 REINSTALLMODE 设置为 amus(强制覆盖) - 这会触发不必要的重启提示。 P.S:确保您的 QA 人员了解并知道如何测试功能/场景。


链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    相关资源
    最近更新 更多