Microsoft在启动应用程序时是否包含自动.NET版本检查?`

时间:2013-06-20 20:53:42

标签: .net windows visual-studio-2012 version environment

我最近在启动我创建的应用程序时检查了正确的.NET版本。很简单:

if (Environment.Version.Major < 4)
{
    //Alert user, exit program
}

然而,我注意到当我在没有必要的.NET版本的计算机上运行我写的(没有检查)的不同.N​​ET应用程序时,有一个警告告诉我我无法运行该应用程序。用VS2012编写的应用程序是自动包含这样的检查还是我应该写一个?

3 个答案:

答案 0 :(得分:1)

只有在安装了应用程序所针对的版本时,才会运行.NET。如果您编写应用程序并以目标.NET 4.0为例,并且机器没有安装4.0,则应用程序根本无法启动,因此使用 Environment.Version 进行的检查非常多多余的。

为了能够真正确定是否安装了.NET以及安装了哪个版本而不依赖于.NET(鸡和鸡蛋问题),您需要使用其他语言(如C ++)编写检测应用程序/位,请参阅此内容article有关在注册表中查找内容的信息(验证安装了哪个版本的.NET的几种方法之一),密钥应位于 HKLM \ SOFTWARE \ Microsoft \ NET Framework安装程序中\ NDP \

答案 1 :(得分:0)

您的支票无效,因为该程序根本无法启动,但请在app.config中尝试此操作:

<configuration>
    <startup>
        <supportedRuntime version="v4.0" />
    </startup>
</configuration>

然后会显示一个漂亮的弹出窗口,向用户显示问题。

答案 2 :(得分:0)

这不起作用。如果您没有正确版本的.NET安装程序,用户将只看到“应用程序已停止工作”消息。

您可能想要做的是.NET应用程序引导程序。