【问题标题】:InstallShield LE - Install project depending on frameworkInstallShield LE - 根据框架安装项目
【发布时间】:2013-10-15 05:52:15
【问题描述】:

在 VS 2012 中,是否有可能有 1 个解决方案:

  • 使用 InstallSHield Limited Edition 的 1 个安装项目
  • 框架 4.5 的 1 个 WPF 项目
  • 框架 4.0 的 1 个 WPF 项目
  • 框架 3.5 的 1 个 WPF 项目

并让 InstallShield 安装项目在安装之前检查计算机正在运行什么框架,然后在用户单击 setup.exe 文件时安装与该框架相对应的项目?

【问题讨论】:

  • 这些 WPF EXE 之间是否存在实质性差异?难道你不能只为 .NET 3.5 编译并显示它以允许在 .NET 3.5 或更高版本上运行吗?

标签: c# wpf installshield installshield-2012 installshield-le


【解决方案1】:

InstallShield 限量版旨在构建单个 Windows Installer 项目。您几乎可以制作一个包含所有这些内容的 MSI,并选择安装哪个,但我认为限量版没有提供足够多的控件,您需要使用 - 您可以按操作系统调节文件,但我不'不相信您可以通过 .NET 框架版本来调节它们。此外,这听起来不像您希望的架构。

如果您有预算考虑 InstallShield 的首要版本,套件项目旨在处理多个软件包的安装,并且可以根据您的喜好调整它们。如果你只有专业版或速成版的预算,专业版绝对可以提供单微星方式,速成版也可以。

(但不要对版本差异过分相信我的话;我把所有时间都花在了首要版上,所以我忘记了低版本的确切功能集是什么。)

【讨论】:

  • 谢谢。有点糟糕,我不能为此使用 LE,但我想他们必须以某种方式赚钱。我会改天再问这个问题,如果没有更好的,我会给你信誉。
  • 我知道怎么做。但问题是,为什么?对于 Michael 来说,ISLE 支持一项功能并且不公开组件条件。此外,启动条件不允许您仅说“3.5 或 4.0”3.5、4.0 或 3.5 和 4.0。但是,通过 WiX 合并模块,可以通过组件注入和 Type 19 CA 创作来解决这个问题。另一种策略是使用具有更高 CLR 支持的 .NET 2.0 Helper.exe 来检测框架并启动正确的 EXE。再说一遍……为什么?