我们的应用程序是使用VS 2008构建的,使用Linq,并将目标框架设置为.NET Framework3.5。
当机器上只安装了.NET 3.5或4时,它可以正常工作。
但是,在同时安装了.NET 2(或3.0)和.NET 4的机器上,应用程序会加载.NET 2,并在访问Linq时崩溃,因为它寻找.NET 3.5库。
在app.config中使用<supportedRuntime>
tag似乎没有帮助,因为它指定了CLR版本,在.NET 3.5的情况下它是2。
请注意,我们的安装程序会验证是否安装了.NET 3.5或更高版本。
有没有一种方法告诉应用程序要加载:
- 最高CLR,或者
- CLR 4(如果已安装)和CLR 2(如果未安装CLR 4),或者
- CLR 2(如果安装了.NET 3.5)和CLR 4(如果未安装.NET 3.5)
(请注意,类似的问题在Element文档的“社区内容”部分中没有得到回答。)