Guide pratique : Rechercher le nom complet d’un assembly

Pour découvrir le nom qualifié complet d’un assembly .NET Framework dans le Global Assembly Cache, utilisez l’outil Global Assembly Cache (Gacutil.exe). Voir Guide pratique pour visualiser le contenu du Global Assembly Cache.

Pour les assemblys .NET Core et pour les assemblys .NET Framework qui ne se trouvent pas dans le Global Assembly Cache, vous pouvez obtenir le nom complet de l’assembly de plusieurs façons :

  • Vous pouvez utiliser du code pour afficher les informations sur la console ou dans une variable, ou bien vous pouvez utiliser le Désassembleur MSIL (Ildasm.exe) pour examiner les métadonnées de l’assembly, qui contiennent le nom qualifié complet.

  • Si l'assembly est déjà chargé par l'application, vous pouvez récupérer la valeur de la propriété Assembly.FullName pour obtenir le nom complet. Vous pouvez utiliser la propriété Assembly d’un Type défini dans cet assembly pour récupérer une référence à l’objet Assembly. Cet exemple en fournit une illustration.

  • Si vous connaissez le chemin d’accès de l’assembly dans le système de fichiers, vous pouvez appeler la méthode statique static (C#) ou Shared (Visual Basic) AssemblyName.GetAssemblyName pour obtenir le nom complet de l’assembly. Voici un exemple simple.

    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
    
  • Vous pouvez utiliser le Désassembleur IL (Ildasm.exe) pour examiner les métadonnées de l’assembly, qui contiennent le nom complet.

Pour plus d’informations sur la définition des attributs d’un assembly, comme la version, la culture et le nom d’assembly, consultez Définition des attributs d’assembly. Pour plus d’informations sur l’attribution d’un nom fort à un assembly, consultez Créer et utiliser des assemblys avec nom fort.

Exemple

L’exemple suivant montre comment afficher sur la console le nom complet d’un assembly contenant une classe spécifiée. Il utilise la propriété Type.Assembly pour récupérer une référence à un assembly à partir d’un type défini dans cet 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

Voir aussi