Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使程序检测.Net版本,然后启用/禁用不同.Net版本支持的功能?_C#_.net_C# 4.0 - Fatal编程技术网

C# 如何使程序检测.Net版本,然后启用/禁用不同.Net版本支持的功能?

C# 如何使程序检测.Net版本,然后启用/禁用不同.Net版本支持的功能?,c#,.net,c#-4.0,C#,.net,C# 4.0,我在做一个老项目。它是很久以前由其他人建立的,它是建立在.NET2.0上的。现在,我需要为它添加一个新功能。然而,在编码方面,基于.NET4.0的API/Class支持新功能。显然,它必须引用一些基于.NET4的新dll。所以,我制作了两个版本的程序。一个是针对没有新功能的.NET2.0,另一个是.NET4.0 现在,项目经理问:有没有可能把这两个版本变成一个版本?因此,在代码中,它检测.Net版本,然后决定是否启用/禁用新功能 如果用户安装了.Net 4.0,这应该不是问题。但是,也有一些用户

我在做一个老项目。它是很久以前由其他人建立的,它是建立在.NET2.0上的。现在,我需要为它添加一个新功能。然而,在编码方面,基于.NET4.0的API/Class支持新功能。显然,它必须引用一些基于.NET4的新dll。所以,我制作了两个版本的程序。一个是针对没有新功能的.NET2.0,另一个是.NET4.0

现在,项目经理问:有没有可能把这两个版本变成一个版本?因此,在代码中,它检测.Net版本,然后决定是否启用/禁用新功能

如果用户安装了.Net 4.0,这应该不是问题。但是,也有一些用户,他们仍然使用只安装了.Net 2.0的旧windows服务器,由于他们的工作,安装.Net 4.0并重新启动系统将是一个问题。因此,基本上,这意味着程序必须能够在.NET2.0上运行

这可能吗?怎么做?有什么建议吗

谢谢

******添加更多信息

我可以检测到.Net版本。但我想知道如何做到这一点:

如果在用户的系统上是.net 2.0,则只运行.net 2.0支持的代码;如果用户的系统是.net 4.0,请运行.net 4.0支持的代码


谢谢

在进行构建时,您需要以.NET framework为目标。您需要创建两个独立的构建

那么你想知道你是否能检测到.net的版本?这个问题的答案是肯定的,不是真的。我为这个问题添加了更多信息。谢谢。看看这里,看看如果(.net==2.0){run2.0}这是否有用,如果(.net==4.0){run4.0},这是否有用。但事实上,这太宽泛了。它将按照你的建议工作。然而,我的问题是:有没有一种方法可以使用一个构建来实现这一点?谢谢。@urlreader不,没有什么是可以用一个版本来完成的。您可以为自己定义的定义使用条件编译块。这可能使您拥有相同的代码库,但是您仍然需要进行两次构建。看看这个答案,让我知道你的答案。