繁体   English   中英

C#.Net框架版本控制

[英]C# .Net framework versioning

如果我构建一个解决方案,其中所有项目都在targetFrameworkVersion = 2.0但是一个targetFrameworkVersion = 3.5和

  1. 没有使用3.5功能
  2. 使用了一些3.5功能,但是调用3.5代码的类永远不会实例化
  3. 某些类中使用了一些3.5特性,这些类是实例化的,但3.5中的代码从未调用过
  4. 调用3.5代码

这取决于你的“功能”是什么意思。 有像var关键字和lambda表达式这样的编译时功能,并且运行时功能如LINQ或WCF需要.NET 3.x运行时中的库。

我假设您正在使用Visual Studio 2008,它将处理所有编译时功能。 如果您使用的只是编译时功能,那么在所有情况下一切都会正常工作。 我经常在我目前的项目中这样做。

如果你正在使用运行时功能,那么我相信它会如何摆脱:

  1. 事情会奏效。
  2. 我认为这也会奏效。
  3. 这取决于静态函数何时被JITted以及静态函数中是否有任何3.5库引用代码。
  4. 调用包含3.5库特性的函数时,可能是MissingMethodException

如果您计划使用运行时功能,而不是担心所有这些,我只需在App.config中添加一个需要3.5运行时的密钥,它将检查启动和炸弹,如果它不是'目前。 然后您不需要弄清楚所有这些排列,您的应用程序将更稳定。

首先,您需要知道您所针对的实际上是.NET 2.0 SP1

您的项目如何相关? 您是否拥有在.NET 2.0下构建的项目,这些项目引用了.NET 3.5项目(反之亦然)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM