【问题标题】:Visual Studio Installer : How to run application if it already installed?Visual Studio 安装程序:如果已安装应用程序,如何运行它?
【发布时间】:2016-12-03 07:38:24
【问题描述】:

我在 Visual Studio 2015 中创建了 C# 应用程序。我添加了安装程序项目并创建了我的应用程序的安装程序。我的安装程序将路径保存到注册表中我的应用程序的安装目录。

是否可以在运行安装程序时检查应用程序当前是否已安装 - 运行它,如果没有 - 运行安装进度?

我的目的是:我需要用我的应用程序创建一个 CD 磁盘。当用户第一次插入此 cd 磁盘时,安装程​​序将运行。当用户再次插入此光盘时,安装的应用程序必须在没有安装过程的情况下运行。

【问题讨论】:

  • 这是什么安装程序?
  • 为什么?安装程序的工作只是安装应用程序。用户不会使用 installer 来运行应用程序。您可以创建一个尝试运行应用程序的自定义操作,但这会非常不寻常且令人困惑。
  • 据我所知,如果已安装,则无法通过设置“运行应用程序”。您可以通过 Visual Studio 中的设置属性指定删除以前的版本并检测新安装的版本。
  • 安装程序的预期行为是提供自定义/删除或修复已安装的应用程序。打破这是一个非常糟糕的主意
  • 谢谢。你会建议我为我的目的使用什么?

标签: c# visual-studio-2015 windows-installer


【解决方案1】:

插入 CD 的自动播放经常被关闭(存在安全风险),因此我不会指望任何自动发生的事情。

插入 CD 并为已安装的产品“运行”它的正常行为是发生维护/修复操作。改变这种行为可能不是一个好主意。此外,如果您安装的产品以某种方式损坏并进入修复模式,则将要求用户插入 CD 以修复安装(例如安装已删除的文件),再次插入也不是一个好主意CD 打破了这种行为,并决定改为(或同时)运行您的应用程序。

所以这并不是一个真正的安装问题,因为它是关于您放在 CD 上的程序的设计,该程序在用户运行 CD 时处理所有这些问题。它将需要查看产品是否已经安装,如果是则运行已安装的应用程序,除了用户可能已将 CD 放入,因为 Windows 要求他们进行修复,我不知道程序如何可以检测到它是为了维修而插入的。如果未安装该产品,则运行您的设置。这些都是您需要编写的代码,用于处理人们提出的问题。

这里有很多问题,而且我从来没有见过这样的产品,所以这是用户不期望的。正如大家所说,这不是一个好主意,您几乎需要决定要破坏 Windows Installer 的哪些功能,例如修复和维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多