Подтвердить что ты не робот

Сборочная версия из командной строки?

Есть ли инструмент Microsoft для получения версии сборки DLL файла из командной строки?

(Я знаю, что я могу закодировать свой собственный инструмент.)

4b9b3361

Ответ 1

Это область, где светит PowerShell. Если у вас его еще нет, установите его. Он предустановлен с Windows 7.

Запуск этой командной строки:

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

выводит это:

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

Обратите внимание, что LoadFrom возвращает объект сборки, поэтому вы можете делать практически все что угодно. Не нужно писать программу.

Ответ 2

Если вы используете моно и Linux, попробуйте следующее:

monodis --assembly MyAssembly.dll

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

Ответ 3

Для тех, как я, которые ищут такой инструмент:

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));
            }
        }
    }
}

Ответ 4

В Powershell

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

Ответ 5

Ничего себе, это плохо, учитывая то, что плагин вокруг gipplus.dll можно использовать в старых версиях.

Мое решение простое. пакетное файловое программирование.

Это ставит файл nfo в тот же каталог с версией

Вы можете GET filever.exe, который можно загрузить как часть пакета средств поддержки Windows XP SP2 - всего 4,7 МБ загрузки.

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 by systernals.

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

Ответ 6

Я использовал выбранный ответ, пока не получил следующую ошибку 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

должен работать в этих случаях (возможно, во всех случаях)

Ответ 7

Инструмент "Версия файла" поможет:

filever /V YourDllName.dll

Ответ 8

Добавление сахара к другим ответам powershell-ish...

Чтобы получить расширенные свойства, такие как 'FullName'

$dllPath = "C:\full\path\to\YourDllName.dll";
$ass  = [System.Reflection.Assembly]::LoadFrom($dllPath);
$ass.GetName();
$ass

Ответ 9

Вы используете GACUTIL?

Вы можете получить версию сборки из этой команды ниже.

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