Öğretici: .NET CLI kullanarak .NET aracı oluşturma

Bu makale şu sürümler için geçerlidir: ✔️ .NET Core 2.1 SDK ve sonraki sürümleri

Bu öğreticide bir .NET aracı oluşturma ve paketle hakkında bilgi edinebilirsiniz. .NET CLI, diğerlerinin yükp çalıştıracakları bir konsol uygulaması oluşturmanızı sağlar. .NET araçları NuGet .NET CLI'dan yüklenmiş olan paketlerdir. Araçlar hakkında daha fazla bilgi için bkz. .NET araçlarına genel bakış.

Oluşturyunuzun araç, bir iletiyi giriş olarak alan ve bir robotun görüntüsünü oluşturan metin satırlarıyla birlikte görüntüleyen bir konsol uygulamasıdır.

Bu, üç öğreticiden bir serinin ilkidir. Bu öğreticide bir araç oluşturacak ve paketleyebilirsiniz. Sonraki iki öğreticide, aracı genel bir araç olarak ve aracı yerel bir araç olarak kullanırsanız. Bir araç oluşturma yordamları, genel bir araç olarak veya yerel bir araç olarak kullanmakla aynıdır.

Önkoşullar

  • .NET SDK 6.0.100 veya sonraki bir sürümü.

    Bu öğreticide .NET SDK 6.0 2.0 2.1'den başlayarak genel .NET Core SDK kullanılabilir. Yerel araçlar 3.0 .NET Core SDK kullanılabilir.

  • Tercih ettiğiniz bir metin veya kod düzenleyicisi.

Proje oluşturma

  1. Komut istemini açın ve repository adlı bir klasör oluşturun.

  2. Depo klasörüne gidin ve aşağıdaki komutu girin:

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

    komutu, repository klasörünün altında microsoft.botsay adlı yeni bir klasör oluşturur.

    Not

    Bu öğretici için .NET 6.0'a yönelik bir araç oluşturabilirsiniz. Farklı bir çerçeveyi hedeflemek için seçeneğini -f|--framework belirleyin. Birden çok çerçeveyi hedeflemek için, aşağıdaki örnekte gösterildiği gibi TargetFramework TargetFrameworks öğesini proje dosyasındaki bir öğe olarak değiştirebilirsiniz:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. microsoft.botsay klasörüne gidin.

    cd microsoft.botsay
    

Kod ekleme

  1. Program.cs dosyasını kod düzenleyiciniz ile açın.

  2. Program.cs'de kodu aşağıdaki kodla değiştirin:

    using System.Reflection;
    
    namespace TeleprompterConsole;
    
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
    
  3. Uygulamanın Main komut satırı bağımsız değişkenlerini işlemesi için yöntemini aşağıdaki kodla değiştirin.

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

    Bağımsız değişken geçirilene kadar kısa bir yardım iletisi görüntülenir. Aksi takdirde, tüm bağımsız değişkenler tek bir dizede bir çağrılır ve sonraki adımda oluşturmakta ShowBot olduğu yöntemi çağrılarak yazdırılır.

  4. bir dize parametresi alan ShowBot adlı yeni bir yöntem ekleyin. yöntemi, metin satırlarını kullanarak iletiyi ve bir robotun görüntüsünü yazdırır.

    static void ShowBot(string message)
    {
        string bot = $"\n        {message}";
        bot += @"
        __________________
                          \
                           \
                              ....
                              ....'
                               ....
                            ..........
                        .............'..'..
                     ................'..'.....
                   .......'..........'..'..'....
                  ........'..........'..'..'.....
                 .'....'..'..........'..'.......'.
                 .'..................'...   ......
                 .  ......'.........         .....
                 .    _            __        ......
                ..    #            ##        ......
               ....       .                 .......
               ......  .......          ............
                ................  ......................
                ........................'................
               ......................'..'......    .......
            .........................'..'.....       .......
         ........    ..'.............'..'....      ..........
       ..'..'...      ...............'.......      ..........
      ...'......     ...... ..........  ......         .......
     ...........   .......              ........        ......
    .......        '...'.'.              '.'.'.'         ....
    .......       .....'..               ..'.....
       ..       ..........               ..'........
              ............               ..............
             .............               '..............
            ...........'..              .'.'............
           ...............              .'.'.............
          .............'..               ..'..'...........
          ...............                 .'..............
           .........                        ..............
            .....
    ";
        Console.WriteLine(bot);
    }
    
  5. Yaptığınız değişiklikleri kaydedin.

Uygulamayı test edin

Projeyi çalıştırın ve çıktıya bakın. Farklı sonuçlar görmek için komut satırına şu varyasyonları deneyin:

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

Sınırlayıcıdan sonra -- gelen tüm bağımsız değişkenler uygulamanıza geçirildi.

Aracı paketle

Uygulamayı bir araç olarak paketleyemeden ve dağıtmadan önce proje dosyasını değiştirmeniz gerekir.

  1. microsoft.botsay.csproj dosyasını açın ve düğümün sonuna üç yeni XML düğümü <PropertyGroup> ekleyin:

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

    <ToolCommandName> , yüklendikten sonra aracı çağıracak komutu belirten isteğe bağlı bir öğedir. Bu öğe sağlanamıyorsa, aracın komut adı .csproj uzantısı olmadan proje dosyası adıdır.

    <PackageOutputPath>, NuGet paketinin üretil NuGet isteğe bağlı bir öğesidir. .NET CLI NuGet aracınızı yüklemek için bu paketi kullanır.

    Proje dosyası artık aşağıdaki örnekteki gibi görünüyor:

    <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. dotnet pack NuGet çalıştırarak bir paket oluşturun:

    dotnet pack
    

    microsoft.botsay.1.0.0.nupkg dosyası, bu örnekte <PackageOutputPath> ./nupkg klasörü olan microsoft.botsay.csproj dosyasındaki değer tarafından tanımlanan klasörde oluşturulur.

    Bir aracı herkese açık şekilde serbest bırakmak istediğiniz zaman aracı 'ye https://www.nuget.org yükleyebilirsiniz. Araç uygulama üzerinde kullanılabilir NuGet, geliştiriciler dotnet tool install komutunu kullanarak aracı yükleyebilir. Bu öğreticide paketi doğrudan yerel nupkg klasöründen yüklersiniz, bu nedenle paketi yerel nupkg klasörüne NuGet.

Sorun giderme

Öğreticiyi takip ederken bir hata iletisi alırsanız bkz. .NET aracı kullanım sorunlarını giderme.

Sonraki adımlar

Bu öğreticide, bir konsol uygulaması oluşturduk ve bir araç olarak paketlediniz. Aracı genel bir araç olarak kullanmayı öğrenmek için sonraki öğreticiye ilerleyin.

Tercih ederseniz, genel araçlar öğreticisi'ne atlayıp doğrudan yerel araçlar öğreticisi'ne gidebilirsiniz.