.NET 版本程序集是用(目标版本)编译的 [重复]

Posted

技术标签:

【中文标题】.NET 版本程序集是用(目标版本)编译的 [重复]【英文标题】:.NET version assembly was compiled with (target version) [duplicate] 【发布时间】:2019-03-19 15:18:19 【问题描述】:

很久很久以前,当您通过文件资源管理器查看文件属性时,我们曾经看到编译库 (dll) 或可执行文件的 .net 版本。 现在你不能,那么检查它现在使用什么版本的最快方法是什么? 我一直在使用 ILSpy 等各种工具,但我需要一些易于安装的工具,例如 reg 条目,以便我可以右键单击并查看版本。

我们在多个服务器(包括客户端服务器)上有大量文件。有时我们需要询问您正在运行什么版本,目前证明这很困难。

有什么想法吗?

【问题讨论】:

确实如此,谢谢Adriani6! 没问题,下面也看看我的回答。正如我发现的那样,这不是重复的,但可能很有用。如果不是,我很乐意删除。 .NET 程序集的目标是运行时版本,而不是框架版本。因此,即使您的目标是 .NET 3.5 或 4.03,您也会看到 2.0.50727 或 v4.0.30319。然而,他们无法在 .NET 4.5 中保持这种可靠性,它有相当大的内部更改来支持 WinRT。所以现在的编译器也会发出一个[TargetFrameworkAttribute],它给你框架版本,任何半体面的反编译器都可以告诉你。 【参考方案1】:

一种快速的方法(不在我标记的副本中)是使用文本编辑器编辑 .dll 并搜索以下阶段“.NETFramework,Version=v”

v 旁边,您将获得构建程序集的版本号(在我的例子中是 4.6.1)。

【讨论】:

以上是关于.NET 版本程序集是用(目标版本)编译的 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

混合模式程序集是针对版本“v1.1.4322”构建的

混合模式程序集是针对版本X构建的,如果没有其他配置信息,则无法在运行时的版本Y中加载

当前的 .Net SDK 不支持针对 .Net Core 2.2 目标 .Net Core 2.1 或更低版本 [重复]

在编译时检测目标框架版本

Visual studio 2015编译项目报错 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib

混合模式程序集是针对运行时的“v2.0.50727”版本构建的