方法: アセンブリの完全修飾名を検索する

グローバル アセンブリ キャッシュ内の .NET Framework アセンブリの完全修飾名を検出するには、グローバル アセンブリ キャッシュ ツール (Gacutil.exe) を使用します。 「方法:グローバル アセンブリ キャッシュの内容を表示する」を参照してください。

.NET Core アセンブリの場合、およびグローバル アセンブリ キャッシュにない .NET Framework アセンブリの場合、完全修飾アセンブリ名をいくつかの方法で取得できます。

  • コードを使用しコンソールや変数に情報を出力したり、Ildasm.exe (IL 逆アセンブラー) を使用して完全修飾名を含むアセンブリのメタデータを調べたりできます。

  • アセンブリがアプリケーションによって既に読み込まれている場合、Assembly.FullName プロパティの値を取得して、完全修飾名を取得できます。 アセンブリに定義されている TypeAssembly プロパティを使用して、Assembly オブジェクトへの参照を取得できます。 具体的な例を次に示します。

  • アセンブリのファイル システム パスがわかっている場合は、static (C#) または Shared (Visual Basic) AssemblyName.GetAssemblyName メソッドを呼び出して、完全修飾アセンブリ名を取得できます。 単純な例を次に示します。

    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
    
  • Ildasm.exe (IL 逆アセンブラー) を使用して、アセンブリのメタデータを使用できます。これには完全修飾名が含まれています。

バージョン、カルチャ、アセンブリ名などのアセンブリ属性の設定の詳細については、「アセンブリ属性の設定」を参照してください。 アセンブリに厳密な名前を指定する方法の詳細については、「厳密な名前付きアセンブリの作成と使用」を参照してください。

指定したクラスを含むアセンブリの完全修飾名をコンソールに表示する例を次に示します。 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

関連項目