代码之家  ›  专栏  ›  技术社区  ›  Toto

C.NET框架版本控制

  •  4
  • Toto  · 技术社区  · 15 年前

    如果我构建了一个解决方案,其中所有项目都在targetframeworkversion=2.0下,而targetframeworkversion=3.5下,并且

    1. 不使用3.5功能
    2. 使用了一些3.5特性,但调用3.5代码的类从未声明过。
    3. 某些类中使用了一些3.5特性,这些类已声明,但3.5中的代码从未调用
    4. 调用3.5代码
    2 回复  |  直到 15 年前
        1
  •  1
  •   Lee    15 年前

    这取决于你所说的“功能”。有编译时功能,比如 var 关键字和lambda表达式,还有一些运行时功能,如linq或wcf,需要在.NET 3.x运行时中使用库。

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

    如果您使用的是运行时功能,那么我相信这就是它将要摆脱的方式:

    1. 一切都会好起来的。
    2. 我想这也行。
    3. 这取决于何时对静态函数进行抖动,以及静态函数中是否有任何3.5库引用代码。
    4. 可能 MissingMethodException 当调用包含3.5库功能的函数时。

    如果您打算使用运行时功能,我不必担心所有这些问题,只需在app.config中添加一个键,说明3.5运行时是必需的,如果它不存在,它将检查启动和爆炸。然后,您不需要计算出所有这些排列,您的应用程序将更加稳定。

        2
  •  0
  •   Scott Dorman    15 年前

    首先,你需要知道你的目标实际上是 .NET 2.0版SP1 .

    你的项目是如何关联的?是否有在.NET 2.0下构建的项目引用.NET 3.5项目(或反之亦然)?