我最近在启动我创建的应用程序时包含了对正确.NET版本的检查。非常简单:
if (Environment.Version.Major < 4)
{
    //Alert user, exit program
}然而,我注意到,当我在没有必要的.NET版本的电脑上运行我编写的另一个.NET应用程序(没有检查)时,出现了一个警告,告诉我无法运行该应用程序。用VS2012编写的应用程序会自动包含这样的检查吗?还是应该由我来编写?
发布于 2013-06-21 04:57:40
仅当您的应用程序所针对的版本已安装时,.NET才会运行。例如,如果您编写了应用程序并以.NET 4.0为目标,而机器没有安装4.0,则应用程序根本不会启动,因此使用Environment.Version进行检查是非常多余的。
为了能够在不依赖.NET的情况下真正确定是否安装了.NET以及安装了哪个版本的.NET (鸡和蛋的问题),您需要用不同的语言编写检测应用程序/位。有关在注册表中查找什么的信息,请参阅此article (验证安装的.NET版本的少数方法之一),密钥应位于**HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP**中
发布于 2013-06-21 05:00:40
您的检查不会起作用,因为程序根本不会启动,但在您的app.config中尝试此操作
<configuration>
    <startup>
        <supportedRuntime version="v4.0" />
    </startup>
</configuration>然后,将显示一个很好的弹出窗口,向用户显示该问题。
发布于 2013-06-21 05:11:30
这行不通的。如果您没有正确的.NET installer版本,用户将只看到“应用程序已停止工作”的消息。
您可能想要做的是.NET应用引导程序。
https://stackoverflow.com/questions/17223574
复制相似问题