.net - 选择免费的安装程序产品并将下载/安装 .NET Framework

标签 .net deployment visual-studio-2010 installation windows-installer

我目前正在使用 Visual Studio 2010 中的 Visual Studio 安装程序(安装项目)作为 MyProgram 的安装程序。它有一些奇怪的错误并且不是很可定制,所以我想切换到另一个安装程序产品。以下是我的要求:

  • 必须是免费的(并且许可用于商业用途)
  • 如果客户端没有,则必须安装 Windows Installer 3.1 和 .NET Framework 4.0
  • 如果它们不可用,安装程序将下载它们
  • 用于检测和下载 .NET Framework 的代码必须由 Microsoft 编写(我不希望将来必须更新硬编码的 URL 和注册表项)。我知道 Windows SDK 包含执行此操作的设置 Bootstrap (C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper)
  • 将来,当 .NET Framework 5 发布并且 MyProgram 使用它时,无需更改安装程序代码,更新后的安装程序产品应该会看到 MyProgram 现在使用 .NET Framework 版本 5 并将安装它

  • 以下是我目前的选择:

    Visual Studio 安装程序:
  • 使用 Bootstrap Setup.exe 自动检测/下载/安装 Windows Installer 和 .NET Framework(好!)
  • 有限/错误的功能(Uninstall shortcuts in the Start Menu cause empty folders to be left behind during uninstallasking the user if they want a desktop shortcut requires a lot of work 等)

  • NSIS:
  • 本身不支持.NET Framework 所以adding it as a prerequisite需要过多的编码、硬编码的 URL 等。

  • 创新设置:
  • 本身不支持.NET Framework 所以adding it as a prerequisite需要过多的编码、硬编码的 URL 等。

  • 维克斯:
  • 陡峭的学习曲线...不确定我是否想花数周时间学习它只是为了发现它与 Visual Studio 安装程序有相同的卸载问题(因为它们都使用 MSI 文件)

  • InstallShield LE 2010:
  • 下载它需要我设置一个虚假的电子邮件帐户来注册只是为了下载它。然后一旦安装它,它必须联系公司的服务器并将一些私有(private)信息传输给他们,然后我才被允许尝试免费版本。这是最阴险的 DRM 形式,我不会接受。
  • 最佳答案

    WiX v3.5 目前处于测试阶段,即将发布。它是最新添加的,Burn,是一个 Bootstrap /链接程序,旨在完全满足您的需求。

    维克斯 一个陡峭的学习曲线,主要是因为你必须学习 MSI 才能做任何稍微复杂的事情。但是,它确实满足您的要求。

    我的选择可能是 NSIS,因为编写安装程序的脚本非常简单。虽然添加 .NET 先决条件是手动的,但如何做到这一点很容易理解并免费发布。

    关于.net - 选择免费的安装程序产品并将下载/安装 .NET Framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2962117/

    相关文章:

    c# - 如何在 C# 的 visual studio 中安装 SAPI?

    java - 如何使用maven将可执行文件放入war文件

    c# - 如何在 Entity Framework 5 中正确触发集合的延迟加载?

    c# - GridView ButtonField 后面的命令

    c# - GridView、Child GridView、多余的列不会消失吗?

    java - .NET 应用程序的部署与 Java Web 应用程序的部署相比如何?

    asp.net-mvc - 自动更新网络应用

    c# - 使用选择和参数插入

    c# - Visual Studio 2010 中 C# 中的 XML 标记 "see "和 "seealso"是什么意思?

    c# - 水平滚动条在 DataGridView 上不可见