根据安装的Net Framework版本运行不同的代码

3

如果安装了Net Framework 3.5,是否可以使用普通的LINQ方法来运行,而如果安装了4.0或更高版本,则使用PLINQ代替?


4
除非有非常大的好处,否则我认为实现两个执行相同任务的代码是不明智的。这将使错误的概率增加一倍,可能导致不一致的行为,这样会使跟踪问题变得难上加难。 - mikerobi
我同意,我认为这通常不是一个好的做法。另外两种选择 - 总是编写‘最低公共分母’框架的代码,或强制客户升级 - 也不是很吸引人。我只是想知道是否有其他选项,就像网页设计师可以编写其站点在新浏览器中看起来很棒,在旧浏览器中也能优雅地降级一样。 - Michael Low
2个回答

2

我认为这是不可能的。以下是一些替代方案:

  • 如果有可能,要求用户升级到.NET 4.0会简单得多。
  • 如果不能要求用户升级,可以花更多时间改进.NET 3.5代码,以便不需要制作特殊的.NET 4.0版本。
  • 或者,您可以使用#if指令制作两个不同版本的项目。

0

虽然我也不认为编写两个版本是明智的,但你可以使用Environment.Version变量。

自1.1版以来,它在所有.NET版本和Silverlight中都存在。


我知道Environment.Version,但我不认为它适用于这里。要使可选的PLINQ代码编译通过,我必须将目标框架设置为4.0,在这种情况下,它将无法在没有安装4.0 Framework的计算机上运行。如果您不同意,请发示例代码? - Michael Low

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接