首页 > 解决方案 > 通知用户 .exe 是针对比当前安装的更新版本的 .NET

问题描述

使用简单的单个 .exe 应用程序,是否可以针对比最终用户计算机上安装的版本更新的 .NET 框架版本,并在启动应用程序时以某种方式通知最终用户他/她需要安装较新版本的 .NET 以使用该应用程序?

在正常情况下,当启动为比当前安装的版本更新的 .NET 版本编译的 .NET .exe 时,有时似乎会弹出一条易于理解的消息,指出要运行应用程序,您必须先安装版本.NET 框架的 X。这很好。但是,它不一定会通知安装正确/需要的版本(请参阅下面的屏幕截图,即使需要 4.6 也需要安装 4.0.30319),有时弹出的消息似乎只是一个通用的 CLR 错误没有解释这是由于安装了错误的 .NET 版本。

是否有任何聪明的方法可以为最终用户生成/显示一致/可靠的更有意义或定制的消息,以便他/她永远不会收到通用 CLR 错误或说明 .NET 版本是的消息需要,但它说明安装错误的版本?

当应用程序面向 .NET 4.6 时,安装了 .NET 3.5.1 的 Windows 2008R2:

在此处输入图像描述

当应用程序面向 .NET 4.6 时,安装了 .NET 4.5 的 Windows 2012R2:

在此处输入图像描述

标签: c#.netwinforms

解决方案


您可以编写一个预启动程序来检查 Windows 系统以查看已安装的内容。然后你可以弹出你想要的任何警告,或者如果一切正常,那么只需启动你的主程序。

此外,正如 Lex Li 所发布的,您可以创建一个安装程序包。我们在我工作的地方使用 Inno Setup,它是免费的,而且非常全面。


推荐阅读