Gewusst wie: Erstellen eines Tools zum Abrufen des vollständigen Namens einer Assembly

Letzte Änderung: Dienstag, 6. Juli 2010

Gilt für: SharePoint Foundation 2010

SharePoint Foundation-Entwicklungsprojekte enthalten oft eine Mischung aus Code und XML-Markup. Häufig fügen Sie einer Projektdatei, z. B. einer XML-Konfigurationsdatei, den vollständigen vierteiligen Namen Ihrer neuen Assembly hinzu. Wenn Ihr Visual Studio-Projekt auf einer der SharePoint 2010-Projektvorlagen in Visual Studio basiert, können sie einfach das Token $SharePoint.Project.AssemblyPublicKeyToken$ dort einfügen, wo sich der vollständige Name der Assembly in den meisten Arten von Projektdateien (aber nicht in CS- oder VB-Dateien oder kompatiblen Dateien) befinden soll. Bei der Erstellung und Bereitstellung des Projekts ersetzt Visual Studio das Token mit dem vollständigen Assemblynamen in den Kopien der Dateien, die tatsächlich bereitgestellt werden. (Weitere Informationen zur Verwendung SharePoint-bezogener Visual Studio-Token finden Sie unter Ersetzbare Parameter.)

Mitunter müssen Sie jedoch ggf. den vollständigen Assemblynamen in einen Dateityp einfügen, der nicht die Visual Studio-Token unterstützt. Es gibt auch Situationen, in denen Sie keine der SharePoint 2010-Projektvorlagen verwenden. Einige Erweiterungen der Verwaltungsfunktionalität von SharePoint umfassen nur eine herkömmliche Microsoft .NET Framework-Konsolenanwendung. In diesen Situationen müssen Sie den tatsächlichen vollständigen Assemblynamen kennen. In diesem Thema wird erklärt, wie Sie ein Befehlszeilentool erstellen, das den vollständigen Namen beliebiger Assemblys abruft, und wie das Tool dem Visual Studio-Menü Tools so hinzugefügt wird, dass der vollständige Name einer Assembly abgerufen wird, die Sie entwickeln.

So erstellen Sie ein Befehlszeilentool zum Abrufen eines vollständigen Assemblynamens

  1. Öffnen Sie Visual Studio als Administrator, indem Sie mit der rechten Maustaste auf das Programm im Startmenü klicken und Als Administrator ausführen auswählen.

  2. Erstellen Sie ein neues Konsolenanwendungsprojekt. Wählen Sie im Dialogfeld Neues Projekt die Option Visual C# oder Visual Basic aus, wählen Sie dann Windows und die Vorlage Konsolenanwendung aus. Geben Sie als Namen für die Anwendung GetAssemblyName an. Klicken Sie dann auf OK.

  3. Ersetzen Sie den gesamten Inhalt der Datei Program.cs (oder Program.vb) durch eines der folgenden Beispiele (abhängig von der Programmiersprache).

    using System;
    using System.Reflection;
    using System.IO;
    
    namespace GetAssemblyName
    {
        class Program
        {
            static void PrintUsage()
            {
                Console.WriteLine("Usage: GetAssemblyName.exe <path and filename>\n");
                Console.WriteLine(@"Example: GetAssemblyName.exe C:\MyAssembly.dll");
                Console.Read();
            }
    
            static void Main(string[] args)
            {
                if (args.Length < 1 || args[0] == "?")
                {
                    PrintUsage();
                    return;
                }
    
                string filename = args[0];
    
                try
                {
                    AssemblyName an = AssemblyName.GetAssemblyName(filename);
                    Console.WriteLine("Fully specified assembly name:\n");
                    Console.WriteLine(an.ToString());
                }
                catch (FileNotFoundException)
                {
                    Console.WriteLine("Cannot locate the assembly. Check the path and try again.");
                }
    
                Console.Read();
            }
        }
    }
    
    Imports System
    Imports System.IO
    Imports System.Reflection
    
    Module Module1
    
        Sub PrintUsage()
            Console.WriteLine("Usage: GetAssemblyName.exe <path and filename>" + vbCrLf)
            Console.WriteLine("Example: GetAssemblyName.exe C:\MyAssembly.dll")
            Console.Read()
        End Sub
    
        Sub Main(ByVal cmdArgs() As String)
    
            If cmdArgs.Length = 0 OrElse cmdArgs(0) = "?" Then
                PrintUsage()
                Return
            End If
    
            Dim filename As String = cmdArgs(0)
    
            Try
                Dim an As AssemblyName = AssemblyName.GetAssemblyName(filename)
                Console.WriteLine("Fully specified assembly name:" + vbCrLf)
                Console.WriteLine(an.ToString())
            Catch
                Console.WriteLine("Cannot locate the assembly. Check the path and try again.")
            End Try
    
            Console.Read()
        End Sub
    
    
    End Module
    
  4. Kompilieren Sie die Anwendung, und testen Sie sie.

  5. Wenn das Tool ordnungsgemäß ausgeführt wird, kopieren Sie die ausführbare Datei in einen permanenten Ordner auf dem Computer.

So fügen Sie ein "Get Assembly Full Name"-Element dem Menü "Tools" hinzu

  1. Wählen Sie in Visual Studio im Menü Tools die Option Externe Tools aus.

  2. Klicken Sie im Dialogfeld Externe Tools auf Hinzufügen, und geben Sie in das Feld Titel den Begriff Get Assembly Full Name ein.

  3. Füllen Sie das Textfeld Befehl aus, indem Sie zu GetAssemblyName.exe wechseln.

  4. Geben Sie in das Textfeld Argumente Folgendes ein (Groß-/Kleinschreibung beachten): -Tp $(TargetPath).

  5. Aktivieren Sie das Kontrollkästchen Ausgabefenster verwenden.

  6. Klicken Sie auf OK. Der neue Befehl wird dem Menü Tools hinzugefügt.

Wenn Sie nun den vierteiligen Namen der Assembly benötigen, die Sie gerade entwickeln, klicken Sie im Menü Tools auf Get Assembly Full Name, und der Name wird im Ausgabefenster angezeigt.

HinweisHinweis

Da der vollständige Assemblyname das öffentliche Schlüsseltoken enthält, das erst vorhanden ist, nachdem die Assembly zum ersten Mal kompiliert wurde, müssen Sie das Projekt kompilieren, bevor Sie das Tool verwenden können.

Siehe auch

Konzepte

Gewusst wie: Erstellen eines Tools zum Abrufen des öffentlichen Schlüssels einer Assembly