Oktatóanyag: .NET-eszköz létrehozása a .NET cli használatával

Ez a cikk a következő kiadásokra vonatkozik: ✔️ .NET Core 2.1 SDK és újabb verziók

Ez az oktatóanyag bemutatja, hogyan hozhat létre és csomagolhat be .NET-eszközöket. A .NET CLI lehetővé teszi, hogy eszközként hozzon létre egy konzolalkalmazást, amelyet mások telepíthetnek és futtathatnak. A .NET-eszközök a .NET CLI-ről telepített NuGet-csomagok. Az eszközökkel kapcsolatos további információkért lásd: .NET-eszközök áttekintése.

A létrehozandó eszköz egy konzolalkalmazás, amely bemenetként egy üzenetet vesz fel, és megjeleníti az üzenetet egy robot képét létrehozó szövegsorokkal együtt.

Ez az első három oktatóanyagból álló sorozatban. Ebben az oktatóanyagban egy eszközt hoz létre és csomagol be. A következő két oktatóanyagban az eszközt globális eszközként, az eszközt pedig helyi eszközként fogja használni. Az eszközök létrehozásának eljárásai ugyanazok, akár globális eszközként, akár helyi eszközként használják.

Előfeltételek

  • .NET SDK 6.0.100 vagy újabb verzió.

    Ez az oktatóanyag a .NET SDK 6.0-t használja, de a globális eszközök a .NET Core SDK 2.1-től érhetők el. A helyi eszközök a .NET Core SDK 3.0-tól érhetők el.

  • Az Ön által választott szöveg- vagy kódszerkesztő.

Projekt létrehozása

  1. Nyisson meg egy parancssort, és hozzon létre egy adattár nevű mappát.

  2. Lépjen az adattár mappájába, és írja be a következő parancsot:

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

    A parancs létrehoz egy microsoft.botsay nevű új mappát az adattár mappájában.

    Megjegyzés

    Ebben az oktatóanyagban egy olyan eszközt hoz létre, amely a .NET 6.0-t célozza. Ha egy másik keretrendszert szeretne megcélozni, módosítsa a -f|--framework beállítást. Több keretrendszer megcélzásához módosítsa az TargetFramework elemet a projektfájl egyik TargetFrameworks elemére az alábbi példában látható módon:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. Lépjen a microsoft.botsay mappába.

    cd microsoft.botsay
    

A kód hozzáadása

  1. Nyissa meg a Program.cs fájlt a kódszerkesztővel.

  2. Cserélje le a Program.cs fájlban lévő kódot a következő kódra:

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

    Az using System.Reflection; irányelvre a következő lépésben hozzáadott kóddal van szükség.

  3. Cserélje le a Main metódust a következő kódra az alkalmazás parancssori argumentumainak feldolgozásához.

    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));
    }
    

    Ha nem ad át argumentumokat, egy rövid súgóüzenet jelenik meg. Ellenkező esetben az összes argumentum egyetlen sztringbe lesz összefűzve, és a ShowBot következő lépésben létrehozott metódus meghívásával lesz kinyomtatva.

  4. Adjon hozzá egy nevű új metódust ShowBot , amely egy sztringparamétert használ. A metódus egy robot üzenetét és képét nyomtatja ki szövegsorok használatával.

    static void ShowBot(string message)
    {
        string bot = $"\n        {message}";
        bot += @"
        __________________
                          \
                           \
                              ....
                              ....'
                               ....
                            ..........
                        .............'..'..
                     ................'..'.....
                   .......'..........'..'..'....
                  ........'..........'..'..'.....
                 .'....'..'..........'..'.......'.
                 .'..................'...   ......
                 .  ......'.........         .....
                 .    _            __        ......
                ..    #            ##        ......
               ....       .                 .......
               ......  .......          ............
                ................  ......................
                ........................'................
               ......................'..'......    .......
            .........................'..'.....       .......
         ........    ..'.............'..'....      ..........
       ..'..'...      ...............'.......      ..........
      ...'......     ...... ..........  ......         .......
     ...........   .......              ........        ......
    .......        '...'.'.              '.'.'.'         ....
    .......       .....'..               ..'.....
       ..       ..........               ..'........
              ............               ..............
             .............               '..............
            ...........'..              .'.'............
           ...............              .'.'.............
          .............'..               ..'..'...........
          ...............                 .'..............
           .........                        ..............
            .....
    ";
        Console.WriteLine(bot);
    }
    
  5. Mentse a módosításokat.

Az alkalmazás tesztelése

Futtassa a projektet, és tekintse meg a kimenetet. Próbálja ki ezeket a változatokat a parancssorban a különböző eredmények megtekintéséhez:

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

Az elválasztó után az -- összes argumentumot átadja az alkalmazásnak.

Az eszköz becsomagolása

Mielőtt eszközként csomagolhatja és terjesztheti az alkalmazást, módosítania kell a projektfájlt.

  1. Nyissa meg a microsoft.botsay.csproj fájlt, és adjon hozzá három új XML-csomópontot a <PropertyGroup> csomópont végéhez:

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

    <ToolCommandName> nem kötelező elem, amely megadja azt a parancsot, amely a telepítés után meghívja az eszközt. Ha ez az elem nincs megadva, az eszköz parancsneve a szerelvény neve, amely általában a projektfájl neve a .csproj kiterjesztés nélkül.

    <PackageOutputPath> nem kötelező elem, amely meghatározza a NuGet-csomag létrehozásának helyét. A .NET CLI a NuGet-csomagot használja az eszköz telepítéséhez.

    A projektfájl most az alábbi példához hasonlóan néz ki:

    <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. Hozzon létre egy NuGet-csomagot a dotnet pack parancs futtatásával:

    dotnet pack
    

    A microsoft.botsay.1.0.0.nupkg fájl a microsoft.botsay.csproj fájl értéke által <PackageOutputPath> azonosított mappában jön létre, amely ebben a példában a ./nupkg mappa.

    Ha nyilvánosan szeretne kiadni egy eszközt, feltöltheti a következő helyre https://www.nuget.org: . Miután az eszköz elérhetővé válik a NuGeten, a fejlesztők a dotnet tool install paranccsal telepíthetik az eszközt. Ebben az oktatóanyagban a csomagot közvetlenül a helyi nupkg mappából telepíti, így nem kell feltöltenie a csomagot a NuGetbe.

Hibaelhárítás

Ha hibaüzenet jelenik meg az oktatóanyag követése során, tekintse meg a .NET-eszközök használati problémáinak elhárítását ismertető cikket.

Következő lépések

Ebben az oktatóanyagban létrehozott egy konzolalkalmazást, és eszközként csomagolta be. Ha meg szeretné tudni, hogyan használhatja az eszközt globális eszközként, lépjen tovább a következő oktatóanyagra.

Tetszés szerint kihagyhatja a globális eszközökkel kapcsolatos oktatóanyagot, és közvetlenül a helyi eszközök oktatóanyagához ugorhat.