【问题标题】:c# Setup Project - Make sure .EXE runs prior to MSI?c# Setup Project - 确保 .EXE 在 MSI 之前运行?
【发布时间】:2011-06-12 17:29:49
【问题描述】:

我正在使用包含一些必备软件的 C# 安装项目。这些 pre-req 似乎只能由 EXE 而不是 MSI 安装(EXE 和 MSI 都是在我构建我的安装项目时创建的。)

我不能总是相信我的用户会打扰运行 EXE 而不是 MSI,那么有没有办法强制它呢?也许有一些选择:

  • 我的应用需要 Sql CE 3.5 SP2 - 有没有办法让 MSI 安装它而不是只安装在 EXE 中?

  • 有没有办法让我的 MSI 检测到它是由用户启动而不是由 EXE 启动的?

  • 我可以让我的 MSI 在安装过程中启动 EXE 安装程序吗?

【问题讨论】:

  • setup.exe 仅用于确保目标计算机具有正确版本的 MSI。真正的问题是什么?
  • 如果用户运行 setup.msi,SQL CE 将不会被安装。如果用户运行 setup.exe,则将安装 SQL CE。我无法阻止用户忽略 EXE 而只运行 MSI。这就是问题所在。

标签: c#-4.0 setup-project


【解决方案1】:

Visual Studio 安装项目不支持此功能。但是,商业设置创作工具提供了多种解决方案:

  • 从 MSI 安装 UI 而不是使用 EXE 处理先决条件
  • 将 MSI 嵌入到 EXE 中,因此您只有一个设置文件
  • 配置 EXE 以设置自定义 MSI 属性并基于该属性创建启动条件;这样,如果 EXE 未设置该属性,MSI 将停止

如果您想继续使用 Visual Studio,一个解决方案是为 Sql CE 3.5 SP2 创建一个启动条件。这样,如果未安装 Sql CE 3.5 SP2,安装将停止。

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多