从命令行汇编版本?

有没有一个微软工具从命令行获取DLL文件的程序集版本?

(我知道我可以编写我自己的工具。)

这是PowerShell发光的一个领域。 如果你还没有安装它, 它预装了Windows 7。

运行这个命令行:

[System.Reflection.Assembly]::LoadFrom("C:\full\path\to\YourDllName.dll").GetName().Version 

输出这个:

 Major Minor Build Revision ----- ----- ----- -------- 3 0 8 0 

请注意,LoadFrom返回一个程序集对象,所以你可以做任何你喜欢的事情。 无需编写程序。

如果你使用mono和linux,试试这个:

 monodis --assembly MyAssembly.dll find . -name MyAssembly.dll -exec monodis --assembly {} ';' | grep Version 

对于那些像我一样寻找这样的工具的人:

 using System; using System.IO; using System.Reflection; class Program { public static void Main(string[] args) { foreach (string arg in args) { try { string path = Path.GetFullPath(arg); var assembly = Assembly.LoadFile(path); Console.Out.WriteLine(assembly.GetName().FullName); } catch (Exception exception) { Console.Out.WriteLine(string.Format("{0}: {1}", arg, exception.Message)); } } } } 

在PowerShell中

 $version = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("filepath.exe").FileVersion.ToString() 

哇这是不好的考虑像老的可利用的gdiplus.dll漂浮的东西。

我的解决scheme很简单。 batch file编程。

这将nfo文件放入与该版本相同的目录中

您可以获取filever.exe,它可以作为Windows XP SP2支持工具软件包的一部分进行下载 – 只需下载4.7MB。

adobe_air_version.bat

 c:\z\filever.exe /A /D /B "C:\Program Files\Common Files\Adobe AIR\Versions\1.0\Adobe AIR.dll" >000_adobe_air.dll_VERSION.nfo exit 

变异。

获取目录中的所有版本为文本文件。

 c:\z\filever.exe /A /D /B "c:\somedirectory\ *.dll *.exe >000_file_versions.nfo exit 

系统也有Sigcheck。

http://technet.microsoft.com/en-us/sysinternals/bb897441.aspx

文件版本工具将帮助:

 filever /V YourDllName.dll 

我用选定的答案,直到我得到以下错误Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. 几个组件

运用

 [System.Reflection.Assembly]::ReflectionOnlyLoadFrom("C:\full\path\to\YourDllName.dll").GetName().Version 

应该在这些情况下工作(可能所有情况下)

你使用GACUTIL吗?

您可以从下面的命令获得程序集版本。

 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe /L "<your assembly name>"