Aracılığıyla paylaş


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

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

Bu öğreticide bir .NET aracı oluşturma ve paketleme öğretildi. .NET CLI, başkalarının yükleyip çalıştırabileceği bir araç olarak bir konsol uygulaması oluşturmanıza olanak tanır. .NET araçları, .NET CLI'dan yüklenen NuGet paketleridir. Araçlar hakkında daha fazla bilgi için bkz. .NET araçlarına genel bakış.

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

Bu, üç öğreticiden oluşan bir serinin ilkidir. Bu öğreticide bir araç oluşturup paketleyebilirsiniz. Sonraki iki öğreticide aracı genel bir araç olarak vearacı yerel araç olarak kullanacaksınız. İster genel bir araç olarak ister yerel bir araç olarak kullanın, araç oluşturma yordamları aynıdır.

Önkoşullar

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

    Bu öğreticide .NET SDK 6.0 kullanılır, ancak .NET Core SDK 2.1'den itibaren genel araçlar kullanılabilir. .NET Core SDK 3.0'dan başlayarak yerel araçlar kullanılabilir.

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

Proje oluştur

  1. Bir komut istemi açın ve depo 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, depo klasörünün altında microsoft.botsay adlı yeni bir klasör oluşturur.

    Uyarı

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

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

    cd microsoft.botsay
    

Kodu ekle

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

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

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

    Yönerge using System.Reflection; , sonraki adımda eklediğiniz kod için gereklidir.

  3. Main uygulamanın komut satırı bağımsız değişkenlerini işlemek 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));
    }
    

    Hiçbir bağımsız değişken geçirilmezse kısa bir yardım iletisi görüntülenir. Aksi takdirde, tüm bağımsız değişkenler tek bir dizede birleştirilir ve sonraki adımda oluşturduğunuz yöntem çağrılarak ShowBot yazdırılır.

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

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

Uygulamayı test et

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

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

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

Aracı paketleme

Uygulamayı bir araç olarak paketleyip dağıtabilmeniz için önce proje dosyasını değiştirmeniz gerekir.

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

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

    <ToolCommandName> , aracı yüklendikten sonra çağıracak komutu belirten isteğe bağlı bir öğedir. Bu öğe sağlanmadıysa, aracın komut adı derleme adıdır ve bu genellikle .csproj uzantısı olmayan proje dosyası adıdır.

    Uyarı

    için <ToolCommandName>benzersiz bir değer seçin. Araç bir uygulama konağı olarak yüklendiğinden ve komutun uzantı içermemesi gerektiğinden dosya uzantılarını (veya gibi .exe.cmd) kullanmaktan kaçının. Bu, mevcut komutlarla çakışmaları önlemeye yardımcı olur ve sorunsuz bir yükleme deneyimi sağlar.

    <PackageOutputPath> , NuGet paketinin nerede üretileceğini belirleyen isteğe bağlı bir öğedir. NuGet paketi, .NET CLI'nin aracınızı yüklemek için kullandığı pakettir.

    Proje dosyası şimdi aşağıdaki örneğe benzer:

    <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 komutunu çalıştırarak bir NuGet paketi oluşturun:

    dotnet pack
    

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

    Bir aracı herkese açık olarak yayınlamak istediğinizde, aracı adresine https://www.nuget.orgyükleyebilirsiniz. Araç NuGet'te kullanıma sunulduktan sonra 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 NuGet'e yüklemeniz gerekmez.

Sorun giderme

Eğitimi 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şturdunuz ve bunu bir araç olarak paketlediyseniz. Aracın genel bir araç olarak nasıl kullanılacağını öğrenmek için sonraki öğreticiye geçin.

İsterseniz genel araçlar öğreticisini atlayabilir ve doğrudan yerel araçlar öğreticisine gidebilirsiniz.

Ayrıca bakınız