c#Setup Project - 确保.EXE在MSI之前运行?

时间:2011-06-11 23:08:38

标签: c#-4.0 setup-project

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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