在OS X上检查程序集(dll)的版本

Rob*_*rto 5 macos dll mono .net-assembly

如何在OS X上检查dll的版本?

dll是用C#创建的,这就是我所知道的.

小智 7

您可以编写一些代码来完成它。创建Program.cs包含:

using System;
using System.Diagnostics;

namespace FileVersionInfoExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var fileName = args[0];
            var fvi = FileVersionInfo.GetVersionInfo(fileName);
            Console.WriteLine($"FileVersion:\t{fvi.FileVersion}");
            Console.WriteLine($"ProductVersion:\t{fvi.ProductVersion}");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要查找 on mono 的版本test.dll

csc Program.cs
mono Program.exe test.dll
Run Code Online (Sandbox Code Playgroud)

test.dll要查找.NET Core 上的版本,首先创建Program.csproj包含:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

然后运行:

dotnet run test.dll
Run Code Online (Sandbox Code Playgroud)

如果您有 .NET Core 2.1,则可以使用.NET Core 全局工具dotnet-versioninfo 。可以这样安装:

dotnet tool install --global dotnet-versioninfo
Run Code Online (Sandbox Code Playgroud)

然后运行:

versioninfo test.dll
Run Code Online (Sandbox Code Playgroud)


小智 7

使用monodis或 ikdasm 可以这样做:

monodis --assembly filename.dll
Run Code Online (Sandbox Code Playgroud)


小智 6

一种非常简单快捷的方法是发出cat命令并读取最后几行,例如

$猫mylibrary.dll

  • 或仅查看文件`$ tail -c 1740 Newtonsoft.Json.dll`的末尾 (3认同)

Mat*_*lch 5

取决于你想要找到什么样的信息...你可以在Xamarin Studio的项目中添加对DLL的引用,然后展开References文件夹并双击DLL ...这将在AssemblyBrowser中打开它并显示当前的AssemblyInfo编译成DLL.

在Xamarin Studio中查看AssemblyInfo

如果您想知道为其构建DLL的体系结构,请在终端窗口中运行它:

file insert_filename_here.dll
Run Code Online (Sandbox Code Playgroud)

如果它是一个x86(或"任何CPU")DLL,它会说:

insert_filename_here.dll: PE32 executable for MS Windows (DLL) (console) Intel 80386 32-bit Mono/.Net assembly
Run Code Online (Sandbox Code Playgroud)

如果它是一个x64 DLL,它会说:

insert_filename_here.dll: PE32+ executable for MS Windows (DLL) (console) Mono/.Net assembly!
Run Code Online (Sandbox Code Playgroud)