【问题标题】:Warn user of .NET Framework requirements警告用户 .NET Framework 要求
【发布时间】:2010-03-26 10:46:54
【问题描述】:

所以我有一个使用 .NET 3.0 的应用程序(工具)。在只有 .NET 2.0(如默认的 Server 2008 R2 安装)的机器上运行时,它会严重崩溃。

到目前为止,我所看到的是人们正在使用首先检查 .NET 版本的分流器。 有没有办法构建它或以某种方式添加一些清单,以便警告用户这个问题(并希望被提示安装 .NET)?

我知道这可以通过安装程序解决,但我有要求它是一个独立的可执行文件。 (好吧,这很难解释,但它与设备驱动程序有关。该工具附带驱动程序,但如果用户不会使用该工具,则不应强迫他们安装.NET 3.0。)

我只需要在一个神秘的“应用程序失败,异常 0xe0434f4d”消息处停下来,至少让用户了解发生了什么。

【问题讨论】:

  • 您的要求是只有一个文件吗?我会对任何 .NET 程序集能够告诉用户他需要安装框架感到惊讶。
  • 我很想听听您需要它成为独立可执行文件的要求。 ClickOnce 非常适合检查机器的依赖关系,包括自动下载和安装 .NET、检查和安装更新,而且它的侵入性极小,即使它确实有资格作为安装程序 ;-)
  • 只要让提出这些要求的人相信安装程序是一个较小的邪恶。沿着这条路走下去不会有任何好处,而且你最终还是会实现自己的安装程序。
  • 真正疯狂的是崩溃消息。应该有一个存根说明需要什么 .NET 版本!

标签: c# .net deployment


【解决方案1】:

尚未对此进行测试,但本文about framework detection 告诉您如何从代码中检测框架版本。我不确定你的应用程序在哪里失败,如果注入这样的检查可以解决你的问题,但如果你不能在你的应用程序中使用它,你也许可以在旧的 .net 2.0 中创建一个小的“启动应用程序”来执行这些检查和然后要么告诉用户升级或启动你的“真正的”应用程序?

正如我所说,还没有测试过这种方法,这只是我的想法。

【讨论】:

  • +1 很好的答案。我打算建议在 .NET 2 中创建一个“启动器”(或任何 OP 支持的最低限度),但缺乏准确找到 .NET 版本的方法。 Environment.Version 只报告 CLR 版本,对于 3.0 和 3.5 仍然是 2.0。
  • 这只是我所说的分流方法。
  • 通常应该在安装程序中执行检查。但是如果发射器是轻量级的,它也不是一个坏主意。
【解决方案2】:

这对我来说毫无意义。你要停在哪里?您是否还要确保用户不会在 Windows 98 上安装它?机器有足够的内存吗?用户帐户是否有足够的权限?

软件供应商发布系统要求。您总是引用最低支持的 Windows 版本、最低 RAM 量、所需磁盘空间、最低浏览器版本等。最低 .NET 框架版本也属于该列表。此列表的意图很明确:如果您不满足要求,请不要期望它可以正常工作。如果你还是这样做了,那是你的问题,不是我的。

这对于消费者级应用来说是不同的。但是,当您安装到 Windows 2008 服务器时,您并不是在编写消费者应用程序。

【讨论】:

  • 我只需要在一个神秘的“应用程序失败并出现异常 0xe2334abcb”消息的地方停下来,至少让用户了解发生了什么。
  • 对于不阅读手册的用户(大多数人)来说,花费一两天或这个问题的可能解决方案是值得的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
相关资源
最近更新 更多