我有一个应用程序和一个它所依赖的 dll,在他们的 csproj 文件中已将其设置为目标 .NET 3.5。我们正在尝试通过/p:TargetFrameworkVersion=v4.0
作为命令行参数传入 msbuild(使用 NAnt)来构建这两个项目以面向 .NET 4.0。构建成功,但运行程序立即崩溃并出现 BadImageFormatException -“此程序集由比当前加载的运行时更新的运行时构建,无法加载”
使用 .NET 反射器,我检查了输出 exe 和 dll 的所有引用 - 一切都引用 .NET 4.0 dll;没有引用 .NET 2;然而我的调试器告诉我 mscorlib 2.0.50727.4971 已经加载。
将项目本身更改为面向 .NET 4,然后在 Visual Studio 中构建工作正常 - 没有问题。
我有点卡在这里,因为我不知道下一个调查步骤可能是什么。我不知道它为什么要加载那个版本的 mscorlib。