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

时间:2015-04-21 12:20:33

标签: c# .net .net-assembly

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

  

未处理的类型' System.TypeLoadException'发生在   WindowsFormsApplication1.exe

     

其他信息:无法加载类型
  ' TradeIdeas.TIProData.OddsMakerColumnConfiguration'从装配   ' TIProData,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。

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

4 个答案:

答案 0 :(得分:25)

您可以使用ReflectorILDASMILSpy来获取程序集版本。

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

ILDASM:

ildasm

反射器:

reflector

答案 1 :(得分:2)

您可以使用小型util app中的AssemblyName.GetAssemblyName(string path)

此处有关MSDN的详细信息。

答案 2 :(得分:1)

有几种方法可以做到:

  • 如果在Visual Studio中引用dll,请右键单击它(在ProjectName / References文件夹中)并选择" Properties"你有"版本"和#34;运行时版本"那里。

  • 在文件资源管理器中右键单击dll文件并选择属性时,会出现一个"文件版本"和"产品版本"那里。

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

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

答案 3 :(得分:0)

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

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

String 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