C# 为什么我的DLL编译为低于我选择的.NET版本?

C# 为什么我的DLL编译为低于我选择的.NET版本?,c#,dll,C#,Dll,这是VS2010中C#中的一个DLL项目。我的项目设置为目标.NET3.5,但当我在编译后使用Reflector检查DLL时,它说它是.NET2.0 我唯一的线索是我正在引用一个DLL,它是.NET2.0 有人能解释这种行为吗?.NET3.5是一系列基于.NET2.0框架的扩展,但底层运行时与.NET2.0中的运行时相同。因此,DLL显示为.NET 2.0,因为它是为.NET 2.0运行时编译的。.NET 3.5是一系列基于.NET 2.0框架的扩展,但底层运行时仍然与.NET 2.0中的相同。

这是VS2010中C#中的一个DLL项目。我的项目设置为目标.NET3.5,但当我在编译后使用Reflector检查DLL时,它说它是.NET2.0

我唯一的线索是我正在引用一个DLL,它是.NET2.0


有人能解释这种行为吗?

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

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

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

在.NET4.0之前,.NET的全新版本以及CLR的新版本。版本4.0.30319。而且它是并行版本,您可以在计算机上同时安装.NET 4和.NET 3.5SP1

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


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

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

在.NET4.0之前,.NET的全新版本以及CLR的新版本。版本4.0.30319。而且它是并行版本,您可以在计算机上同时安装.NET 4和.NET 3.5SP1

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


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

我不认为核心.NET库已经从2.0版改变了-较新的.NET版本只是添加了新的库-我可能是错的,尽管“与.NET Framework 3.0一样,3.5版使用公共语言运行库(CLR)2.0,即与.NET Framework 2.0版相同的版本。”-你在Reflector应用程序中看到了对2.0的引用吗?我不认为核心.NET库已从2.0更改-较新的.NET版本只是添加了新库-我可能是错的,尽管“与.NET Framework 3.0一样,3.5版使用公共语言运行库(CLR)2.0,即与.NET Framework 2.0版相同的版本。”-在Reflector应用程序中,您在哪里看到对2.0的引用?具有良好的图像,显示CLR不一定与.NET版本匹配。非常好。谢谢大家。具有良好的图像,显示CLR不一定与.NET版本匹配。非常好。谢谢大家。这增加了清晰度,真的很有帮助。谢谢。这增加了清晰度,真的很有帮助。非常感谢。