Class 库在 3.5 而不是 2.0 中编译 - 从 Visual Studio 2008 年迁移到 2013 年

Class library compiling in 3.5 and not in 2.0 - Migrated from Visual Studio 2008 to 2013

我刚刚将 FW 2.0 中的一个 class 库从 VS2008 迁移到 VS2013。 当我尝试编译时出现了问题。在 VS2013 中它不起作用,因为它告诉我引用库中包含的某些 classes 不存在(但它们存在!我可以看到引用)

它仅在我将目标固件设置为 3.5 时编译,但我应该继续使用固件 2.0,因为 Gen.Ico 在固件 2.0 中。

请记住,在 VS 2008 中没有发现问题。

如果我在 VS2015 上编译它,它会提供以下信息:

谢谢

如果右键单击项目并选择属性,在应用程序中,您可以选择要定位的框架。选择 Framework .Net 2.0,它应该可以工作。

我终于找到了解决办法: 在 Gen.Ico.dll 中进行一些调查后,我发现它引用了一些使用 FW 3.5 的库,因此:

  • VS 2013 / 2015 在检查引用库的问题方面要好得多,它会抛出 VS2008 不会抛出的错误和警告。 如果你引用了一些库,里面引用了其他框架的库,比如 3.5:

Gen.Ico 引用了一个库,该库引用了:

    .assembly extern System.Core
     {

     .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )     //.z\V.4..
     .ver 3:5:0:0

     }

     .assembly extern System.Management.Instrumentation
     {
        .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
        .ver 3:5:0:0
     }