Tutorial: Erstellen eines .NET-Tools mithilfe der .NET-CLI

Dieser Artikel gilt für: ✔️ .NET Core 2.1 SDK und neuere Versionen

In diesem Tutorial erfahren Sie, wie Sie ein .NET-Tool erstellen und packen. Die .NET-CLI ermöglicht es Ihnen, eine Konsolenanwendung als Tool zu erstellen, das von anderen installiert und ausgeführt werden kann. .NET-Tools sind NuGet-Pakete, die über die .NET-CLI installiert werden. Weitere Informationen zu Tools finden Sie unter Übersicht über die .NET-Tools.

Das von Ihnen erstellte Tool ist eine Konsolenanwendung, die eine Nachricht als Eingabe verwendet und sie zusammen mit Textzeilen anzeigt, die das Bild eines Roboters erzeugen.

Dies ist das erste in einer Reihe von drei Tutorials. In diesem Tutorial erstellen und packen Sie ein Tool. In den nächsten beiden Tutorials verwenden Sie das Tool als globales Tool und das Tool als lokales Tool. Die Verfahren zum Erstellen eines Tools sind unabhängig davon identisch, ob es als globales oder lokales Tool verwendet wird.

Voraussetzungen

  • .NET SDK 6.0.100 oder eine höhere Version.

    In diesem Tutorial wird das .NET SDK 6.0 verwendet, aber die globalen Tools sind ab .NET Core SDK 2.1 verfügbar. Lokale .NET Core-Tools sind ab .NET Core SDK 3.0 verfügbar.

  • Ein Text-Editor oder Code-Editor Ihrer Wahl.

Erstellen eines Projekts

  1. Öffnen Sie eine Eingabeaufforderung, und erstellen Sie einen Ordner mit dem Namen repository.

  2. Navigieren Sie zum Ordner Repository, und geben Sie den folgenden Befehl ein:

    dotnet new console -n microsoft.botsay -f net6.0
    

    Der Befehl erstellt einen neuen Ordner namens microsoft.botsay im Ordner Repository.

    Hinweis

    Für dieses Tutorial erstellen Sie ein Tool, das auf .NET 6.0 ausgerichtet ist. Wenn Sie ein anderes Framework als Ziel verwenden möchten, ändern Sie die Option -f|--framework. Wenn Sie mehrere Frameworks als Ziel verwenden möchten, ändern Sie das Element TargetFramework wie im folgenden Beispiel gezeigt in ein TargetFrameworks-Element in der Projektdatei:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. Navigieren Sie zum Ordner microsoft.botsay.

    cd microsoft.botsay
    

Hinzufügen des Codes

  1. Öffnen Sie die Datei Program.cs mit Ihrem Code-Editor.

  2. Ersetzen Sie den Code in Program.cs durch den folgenden Code:

    using System.Reflection;
    
    namespace microsoft.botsay;
    
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
    

    Die using System.Reflection;-Anweisung wird von Code benötigt, den Sie im nächsten Schritt hinzufügen.

  3. Ersetzen Sie die Main-Methode durch folgenden Code, um die Befehlszeilenargumente für die Anwendung zu verarbeiten.

    static void Main(string[] args)
    {
        if (args.Length == 0)
        {
            var versionString = Assembly.GetEntryAssembly()?
                                    .GetCustomAttribute<AssemblyInformationalVersionAttribute>()?
                                    .InformationalVersion
                                    .ToString();
    
            Console.WriteLine($"botsay v{versionString}");
            Console.WriteLine("-------------");
            Console.WriteLine("\nUsage:");
            Console.WriteLine("  botsay <message>");
            return;
        }
    
        ShowBot(string.Join(' ', args));
    }
    

    Wenn keine Argumente übergeben werden, wird eine kurze Hilfemeldung angezeigt. Andernfalls werden alle Argumente zu einer einzigen Zeichenfolge verkettet und durch den Aufruf der im nächsten Schritt erstellten ShowBot-Methode ausgegeben.

  4. Fügen Sie eine neue Methode namens ShowBot hinzu, die einen Zeichenfolgenparameter verwendet. Die Methode gibt die Meldung und mithilfe von Textzeilen ein Bild eines Roboters aus.

    static void ShowBot(string message)
    {
        string bot = $"\n        {message}";
        bot += @"
        __________________
                          \
                           \
                              ....
                              ....'
                               ....
                            ..........
                        .............'..'..
                     ................'..'.....
                   .......'..........'..'..'....
                  ........'..........'..'..'.....
                 .'....'..'..........'..'.......'.
                 .'..................'...   ......
                 .  ......'.........         .....
                 .    _            __        ......
                ..    #            ##        ......
               ....       .                 .......
               ......  .......          ............
                ................  ......................
                ........................'................
               ......................'..'......    .......
            .........................'..'.....       .......
         ........    ..'.............'..'....      ..........
       ..'..'...      ...............'.......      ..........
      ...'......     ...... ..........  ......         .......
     ...........   .......              ........        ......
    .......        '...'.'.              '.'.'.'         ....
    .......       .....'..               ..'.....
       ..       ..........               ..'........
              ............               ..............
             .............               '..............
            ...........'..              .'.'............
           ...............              .'.'.............
          .............'..               ..'..'...........
          ...............                 .'..............
           .........                        ..............
            .....
    ";
        Console.WriteLine(bot);
    }
    
  5. Speichern Sie die Änderungen.

Testen der Anwendung

Führen Sie das Projekt aus, und sehen Sie sich die Ausgabe an. Probieren Sie diese Variationen in der Befehlszeile aus, um die verschiedenen Ergebnisse anzuzeigen:

dotnet run
dotnet run -- "Hello from the bot"
dotnet run -- Hello from the bot

Alle Argumente hinter dem Trennzeichen -- werden an Ihre Anwendung übergeben.

Packen des Tools

Bevor Sie die Anwendung als Tool packen und verteilen können, müssen Sie die Projektdatei ändern.

  1. Öffnen Sie die Datei microsoft.botsay.csproj, und fügen Sie drei neue XML-Knoten zum Ende des <PropertyGroup>-Knotens hinzu:

    <PackAsTool>true</PackAsTool>
    <ToolCommandName>botsay</ToolCommandName>
    <PackageOutputPath>./nupkg</PackageOutputPath>
    

    <ToolCommandName> ist ein optionales Element, das den Befehl angibt, der das Tool nach seiner Installation aufruft. Wenn dieses Element nicht bereitgestellt wird, entspricht der Befehlsname für das Tool dem Assemblynamen. Dies ist in der Regel der Name der Projektdatei ohne die Erweiterung .csproj.

    <PackageOutputPath> ist ein optionales Element, das bestimmt, wo das NuGet-Paket erstellt wird. Das NuGet-Paket wird von der .NET-CLI zur Installation Ihres Tools verwendet.

    Die Projektdatei sieht wie im folgenden Beispiel aus:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
    
        <OutputType>Exe</OutputType>
        <TargetFramework>net6.0</TargetFramework>
    
        <PackAsTool>true</PackAsTool>
        <ToolCommandName>botsay</ToolCommandName>
        <PackageOutputPath>./nupkg</PackageOutputPath>
    
      </PropertyGroup>
    
    </Project>
    
  2. Erstellen Sie ein NuGet-Paket, indem Sie den Befehl dotnet pack ausführen:

    dotnet pack
    

    Die Datei microsoft.botsay.1.0.0.nupkg wird in dem Ordner erstellt, der mit dem <PackageOutputPath>-Wert der Datei microsoft.botsay.csproj angegeben wird. In diesem Beispiel handelt es sich dabei um den Ordner ./nupkg.

    Wenn Sie ein Tool veröffentlichen möchten, laden Sie es in https://www.nuget.org hoch. Sobald das Tool in NuGet verfügbar ist, können Entwickler es mit dem Befehl dotnet tool install installieren. Für dieses Tutorial installieren Sie das Paket direkt aus dem lokalen Ordner nupkg, sodass Sie das Paket nicht auf NuGet hochladen müssen.

Problembehandlung

Falls im Verlauf des Tutorials eine Fehlermeldung angezeigt wird, finden Sie unter Behandlung von Problemen bei der Nutzung von .NET-Tools weitere Informationen.

Nächste Schritte

In diesem Tutorial haben Sie eine Konsolenanwendung erstellt und sie als Tool gepackt. Im nächsten Tutorial erfahren Sie, wie Sie das Tool als globales Tool verwenden können.

Auf Wunsch können Sie das Tutorial zu den globalen Tools überspringen und direkt zum Tutorial für lokale Tools übergehen.