我是否应该担心使用我的应用程序重新分发.NET运行时?

时间:2009-06-25 22:52:53

标签: .net installer redistributable

我希望尽可能避免使用我的应用程序重新分发.NET运行时,因为它会增加应用程序的大小,下载时间,开发时间和时间。可能会引入许多不同的部署错误。 Microsoft是否强制用户通过Windows更新更新.NET运行时?如果没有,重新分配.NET运行时有哪些选项? Microsoft是否更容易使用.NET应用程序重新分配运行时?此外,.NET运行时是否可以向后兼容?

我只是在这里总结答案。看起来我们必须有一个引导程序,至少检查是否存在.NET运行时。另一种选择是打包运行时并在它不存在时进行部署。包装和包装有多种选择。 Visual Studio确实提供了使用运行时构建安装程序项目的选项。还有其他包装选项,如InnoSetup,WIX等(不确定哪个选项更好,更免费)。运行时安装需要重新启动,所选的安装选项应在重新启动后恢复应用程序安装。

5 个答案:

答案 0 :(得分:3)

制作Windows Installer项目。您应该在VS2005和VS2008中选择此选项。它将确保在安装应用程序时系统具有.NET运行时以及任何其他所需的软件。这会将它添加到您的安装程序包,而不是您的应用程序。这通常是您安装应用程序或使用Install Shield的方式。

Here is a guide

alt text http://img154.imageshack.us/img154/2066/newprojectr.png

答案 1 :(得分:2)

此外,您应该担心这一点。没有运行时,您的应用程序将神秘地无法工作。您永远不应该假设某些特定版本的运行时已预先安装。

如上所述,VS中的安装程序项目向导将创建一个仅在需要时才下载的安装文件。 NSIS和Inno Setup有脚本可以做同样的事情。请注意,安装运行时需要处理reboot-and-continue-setup。我相信安装程序向导会为您处理此问题。

答案 2 :(得分:1)

创建安装程序包时,只有在需要时才会安装运行时。即尚未在系统上(或错误的版本)

编辑:是的,你应该创建这个包,它可以让你的生活更加容易。在VS中执行此操作的方式是File-> Project并选择intstaller项目。该向导将指导您完成选项。

答案 3 :(得分:1)

使用某种类型的引导程序,您可以检查是否安装了.NET,然后在必要时下载它。

例如,使用MSI Factory引导程序(我不是在提倡MSI工厂,这是一个丑陋的程序。但是,如果你正在开发像我们这样的商业软件,它自带的引导程序是非常值得的许可证成本do)你可以简单地包含脚本来执行这个功能。我们正在使用WiX + MSI Factory引导程序来分发单个压缩的EXE(30Mb)和一个下载MSI的小型1Mb“下载器”EXE。两个EXE都检查是否存在.NET 2.0,然后在必要时下载它。我们还分发了一个独立的MSI,它也检查.NET并阻止安装(如果它不存在)。

基本上你有以下几点:

  • Windows XP - 不附带.NET。客户需要手动安装它(它显示为可选的Windows Update组件)
  • Vista - 附带.NET 2.0(但 1.1)
  • Server 2003 - 附带.NET 1.1

忽略.NET 1.1,忽略它。 Vista用户及其他用户只会安装它以用于遗留应用程序支持,或者如果他们是开发人员。

.NET 2.0是最常安装的版本,从我们的用户群中我们发现只有不到10%的用户安装了.NET 3.5。如果您的应用程序针对技术性,令人讨厌的受众,那么我会说~50%的人会拥有.NET 3.0。如果您的目标是消费者/零售/非技术市场,那么使用.NET 2.0可能会估计约30%,使用.NET 3.0或更高版本可能会估计10%。

以上数据基于我们网站的浏览器流量,这些网站主要是非技术人员。这可能是了解市场的最佳方式。 IE总是在User-agent字符串中报告.NET版本,因此打破weblog并开始分析:)

答案 4 :(得分:0)

这取决于。在我工作的地方,我们将它作为先决条件包含在安装程序中,因为我们有一些客户可能没有互联网连接来下载运行时。

你可以做的一些事情:

  1. 在目标计算机上包含.NET版本的测试,如果不存在则退出安装。
  2. 制作包含.NET运行时的安装版本,并在需要时安装它。
  3. 制作将下载.NET运行时的安装版本,并根据需要进行安装。
  4. 如果我知道我的客户都在线,我会为.NET以及Crystal Reports或SQL Express等任何其他先决条件执行选项3。我安装了包含的内容,安装量超过100MB。 70MB +是先决条件。