如何检查程序集 (dll) 的版本?

How to check the version of an assembly (dll)?

我有 C# 应用程序,当我进行更改时,我收到错误消息:

An unhandled exception of type 'System.TypeLoadException' occurred in WindowsFormsApplication1.exe

Additional information: Could not load type
'TradeIdeas.TIProData.OddsMakerColumnConfiguration' from assembly 'TIProData, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’.

此消息表示 dll (TIProData) 的版本号为 1.0.0.0。我认为有更高版本可用。如何知道我机器上的 dll 版本号?

您可以使用Reflector, ILDASM or ILSpy获取程序集版本。

您通常可以在 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe 中找到 ILDASM(其中 v8.1A 是安装的 Windows SDK 的版本)。

ILDASM:

反光镜:

您可以通过一个小实用程序使用 AssemblyName.GetAssemblyName(string path)

有关 MSDN 的更多详细信息。

有几种方法可以做到:

  • 如果您在 Visual Studio 中引用 dll,请右键单击它(在 ProjectName/References 文件夹中)并且 select "Properties" 您有 "Version" 和 "Runtime Version" 那里。

  • 在文件资源管理器中,当您右键单击 dll 文件和 select 属性时,那里有一个 "File Version" 和 "Product Version"。

  • 或者,在代码中进行调查:

    Assembly assembly = Assembly.LoadFrom("TestAssembly.dll");
    Version ver = assembly.GetName().Version;
    

如果你知道Class,属于程序集,你可以使用GetTypeInfo

var runtimeVersion = typeof(MyClass)
.GetTypeInfo()
.Assembly
.GetCustomAttribute<AssemblyFileVersionAttribute>();

字符串ver=RuntimeVersion.Version;

该示例适用于.Net Core 来自 https://developers.de/blogs/damir_dobric/archive/2017/06/27/how-to-deal-with-assembly-version-in-net-core.aspx