1

This is a DLL project in C# in VS 2010. My project is set to target .NET 3.5, but when I check my DLL after compile, using Reflector, it says it is .NET 2.0.

My only clue is that I'm referencing a DLL that is .NET 2.0.

Can someone explain this behavior?

4

2 回答 2

5

.NET 3.5 是一系列基于 .NET 2.0 框架的扩展,但底层运行时仍与 .NET 2.0 相同。因此 DLL 显示为 .NET 2.0,因为它是为 .NET 2.0 运行时编译的。

于 2013-08-02T15:50:47.783 回答
3

这不是它的工作方式。程序集以CLR 版本为目标。版本 2.0.50727 适用于面向 .NET 2.0 到 3.5 SP1 的任何项目。不是并行版本,3.0、3.5 和 3.5SP1 只是添加了额外的程序集。它们仍然使用相同的 CLR 和相同的基类程序集。

在 .NET 4.0 之前,一个全新版本的 .NET 与新版本的 CLR。版本 4.0.30319。它是一个并行版本,您可以在机器上安装 .NET 4 和 .NET 3.5SP1。

.NET 4.5 又是一个更新,它取代了 4.0 并使用相同的 CLR 版本。

在您的项目中设置 .NET Framework 目标版本的用途是帮助捕获您意外使用仅在更高版本中可用的程序集的 IDE。您仍然可以构建您的项目,但它当然不会在用户的机器上运行。你想知道那件事。

于 2013-08-02T15:55:29.020 回答