Поделиться через


Практическое руководство. Поиск полного имени сборки

Чтобы получить полное имя сборки .NET Framework в глобальном кэше сборок, используйте средство глобального кэша сборок (Gacutil.exe). См. практическое руководство. Просмотр содержимого глобального кэша сборок.

Получить полное имя сборки .NET Core или .NET Framework, которая отсутствует в глобальном кэше сборок, можно несколькими способами:

  • Вы можете использовать код для вывода данных в консоль или в переменную либо применить дизассемблер IL Ildasm.exe для просмотра метаданных сборки, которые содержат полное имя.

  • Если сборка уже загружена приложением, то для получения полного имени можно извлечь значение свойства Assembly.FullName. Для получения ссылки на объект Assembly можно использовать свойство Assembly объекта Type, определенного в этой сборке. Иллюстрация приведена в примере.

  • Если вы знаете путь к файлу сборки в системе, то можете вызвать метод AssemblyName.GetAssemblyNamestatic (C#) или Shared (Visual Basic), чтобы получить полное имя сборки. Ниже приведен простой пример.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          Console.WriteLine(AssemblyName.GetAssemblyName(@".\UtilityLibrary.dll"));
       }
    }
    // The example displays output like the following:
    //   UtilityLibrary, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    
    Imports System.Reflection
    
    Public Module Example
       Public Sub Main
          Console.WriteLine(AssemblyName.GetAssemblyName(".\UtilityLibrary.dll"))
       End Sub
    End Module
    ' The example displays output like the following:
    '   UtilityLibrary, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    
  • Вы можете воспользоваться дизассемблером IL (Ildasm.exe), чтобы просмотреть метаданные сборки, которые содержат ее полное имя.

Подробнее о задании атрибутов сборки, таких как версия, язык и региональные параметры и имя сборки, см. в разделе Настройка атрибутов сборки. Подробнее о присвоении сборке строгого имени см. в разделе Создание и использование сборок со строгими именами.

Пример

В примере ниже показано, как просмотреть полное имя сборки, содержащей указанный класс, в консоли. Для получения ссылки на сборку из типа, определенного в этой сборке, используется свойство Type.Assembly.

#using <System.dll>
#using <System.Data.dll>

using namespace System;
using namespace System::Reflection;

ref class asmname
{
public:
    static void Main()
    {
        Type^ t = System::Data::DataSet::typeid;
        String^ s = t->Assembly->FullName->ToString();
        Console::WriteLine("The fully qualified assembly name " +
            "containing the specified class is {0}.", s);
    }
};

int main()
{
    asmname::Main();
}
using System;
using System.Reflection;

class asmname
{
    public static void Main()
    {
        Type t = typeof(System.Data.DataSet);
        string s = t.Assembly.FullName.ToString();
        Console.WriteLine("The fully qualified assembly name " +
            "containing the specified class is {0}.", s);
    }
}
Imports System.Reflection

Class asmname
    Public Shared Sub Main()
        Dim t As Type = GetType(System.Data.DataSet)
        Dim s As String = t.Assembly.FullName.ToString()
        Console.WriteLine("The fully qualified assembly name " +
            "containing the specified class is {0}.", s)
    End Sub
End Class

См. также