我最近在启动我创建的应用程序时检查了正确的 .NET 版本。很简单:
if (Environment.Version.Major < 4)
{
//Alert user, exit program
}
但是,我注意到,当我在没有必要 .NET 版本的计算机上运行我编写的另一个 .NET 应用程序(没有检查)时,会出现一个警告,告诉我无法运行该应用程序。用 VS2012 编写的应用程序会自动包含这样的检查还是我应该写一个?
我最近在启动我创建的应用程序时检查了正确的 .NET 版本。很简单:
if (Environment.Version.Major < 4)
{
//Alert user, exit program
}
但是,我注意到,当我在没有必要 .NET 版本的计算机上运行我编写的另一个 .NET 应用程序(没有检查)时,会出现一个警告,告诉我无法运行该应用程序。用 VS2012 编写的应用程序会自动包含这样的检查还是我应该写一个?
只有安装了您的应用程序所针对的版本,.NET 才会运行。例如,如果您编写了应用程序并以目标.NET 4.0
为目标,并且机器没有安装 4.0,则应用程序根本不会启动,因此使用Environment.Version进行检查几乎是多余的。
为了能够在不依赖 .NET(鸡和蛋问题)的情况下真正确定是否安装了 .NET 以及安装了哪个版本,您需要用不同的语言(如 C++)编写检测应用程序/位,请参阅本文了解信息关于在注册表中查找的内容(验证已安装 .NET 版本的少数方法之一),密钥应位于HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
您的检查将不起作用,因为该程序根本不会启动,但请在您的app.config
:
<configuration>
<startup>
<supportedRuntime version="v4.0" />
</startup>
</configuration>
然后将显示一个漂亮的弹出窗口,向用户显示问题。
这行不通。如果您没有正确版本的 .NET 安装程序,用户将只会看到“应用程序已停止工作”消息。
您可能想要做的是 .NET 应用程序引导程序。