为啥我的 .net 项目针对 .net framework 3.5 的 System.dll 版本是 2.x?

Posted

技术标签:

【中文标题】为啥我的 .net 项目针对 .net framework 3.5 的 System.dll 版本是 2.x?【英文标题】:Why the version of System.dll is 2.x in my .net project targeting .net framework 3.5?为什么我的 .net 项目针对 .net framework 3.5 的 System.dll 版本是 2.x? 【发布时间】:2012-01-19 05:28:43 【问题描述】:

我有一个针对 .net 框架 3.5 的解决方案。所有对核心 dll 的引用都有运行时版本 2.x,因为它们是用它编译的。为什么会这样?这是否意味着我没有使用带有错误修复的最新版本的 DLL?

【问题讨论】:

【参考方案1】:

Framework 3.5 仍在 CLR 2.0 上工作。 V3 和 V3.5 仅添加了一些(实际上很多)新类,但没有更改现有程序集。编译器也发生了变化,但实际上并没有改变运行时。

这就是为什么在 %windir%\Microsoft.NET\Framework\v3.5(或 Framwork64)中,您不会找到 V2 中已经可用的程序集。

Framework V4 引入了新版本的 CLR。你会在%windir%\Microsoft.NET\Framework\v4.0.30319所有程序集中找到相应的。

Versions and Dependencies page 列出所有版本,包括基类库版本和 clr 版本。

[编辑]由于V4.5即将推出,下一个版本same table is available。

【讨论】:

【参考方案2】:

不,您使用的是最新的 3.5,仍然依赖于某些程序集文件中的 2.x。 尝试检查 2.x 附带的程序集,您永远不会发现它们是 3.x,因此这些文件没有新版本。

加1: 要检查您的目标框架,请转到项目繁荣->编译->单击高级编译选项->目标框架。

【讨论】:

以上是关于为啥我的 .net 项目针对 .net framework 3.5 的 System.dll 版本是 2.x?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 a-frame 点击事件不起作用?

为啥捆绑包在我的 asp.net mvc 项目中不起作用?

为啥 Visual Studio 不调试我的 VB.NET 应用程序?

为啥 EF Scaffold-DbContext 命令在针对 net6.0 报告“未找到设计时服务”后会引发 NRE?

为啥我在使用 Typescript 的 .net 核心项目中的 NPM 模块出现此错误?

为啥我的解决方案找不到 json.net