0

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

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

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

4

3 回答 3

1

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

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

于 2013-06-20T20:57:39.770 回答
0

您的检查将不起作用,因为该程序根本不会启动,但请在您的app.config

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

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

于 2013-06-20T21:00:39.603 回答
0

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

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

于 2013-06-20T21:11:29.610 回答