我有一个.NET Core应用程序,它使用.csproj中的标准选项在构建过程中设置元数据属性:

<Project>

  <PropertyGroup>

    <Product>MyCoolProduct</Product>
    <Version>0.1.1</Version>

  </PropertyGroup>

  <snip />

</Project>
在Windows上,这很容易从Explorer中或通过PowerShell脚本从已编译的.dll中检索。我如何在Linux上做类似的事情?理想情况下,我希望能够运行一个简单的命令,例如dotnet inspect my.dll并获取该程序集的元数据摘要,但是接下来的最佳选择是什么?

最佳答案

我使用exiftool:

$ exiftool /usr/lib64/dotnet/sdk/2.0.3/Microsoft/Microsoft.NET.Build.Extensions/tools/netcoreapp1.0/System.Threading.dll | grep -i version
ExifTool Version Number         : 10.55
Linker Version                  : 48.0
OS Version                      : 4.0
Image Version                   : 0.0
Subsystem Version               : 4.0
File Version Number             : 4.6.24705.1
Product Version Number          : 0.0.0.0
File Version                    : 4.6.24705.01
Product Version                 : 4.6.24705.01. Commit Hash: 4d1af962ca0fede10beb01d197367c2f90e92c97
Assembly Version                : 4.0.12.0

最初是从here发现的。

不过要当心。它不适用于crossgen ed的东西:
$ exiftool /usr/lib64/dotnet/sdk/2.0.3/Roslyn/Microsoft.CodeAnalysis.dll
ExifTool Version Number         : 10.55
File Name                       : Microsoft.CodeAnalysis.dll
Directory                       : /usr/lib64/dotnet/sdk/2.0.3/Roslyn
File Size                       : 4.6 MB
File Modification Date/Time     : 2018:01:24 13:12:48-05:00
File Access Date/Time           : 2018:02:01 12:37:59-05:00
File Inode Change Date/Time     : 2018:01:26 09:52:23-05:00
File Permissions                : rw-r--r--
Error                           : File format error

关于linux - 在Linux上获取.NET Core DLL版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48571641/

10-10 14:02
查看更多