Öğretici: .NET CLI kullanarak .NET aracı oluşturma
Bu makale şunlar için geçerlidir: ✔️ .NET Core 2.1 SDK ve sonraki sürümler
Bu öğreticide bir .NET aracı oluşturma ve paketleme öğretildi. .NET CLI, başkalarının yükleyip çalıştırabileceği bir konsol uygulamasını araç olarak 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. Araç oluşturma yordamları, ister genel bir araç olarak ister yerel bir araç olarak kullanın 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 başlayarak genel araçlar sağlanır. .NET Core SDK 3.0'dan başlayarak yerel araçlar kullanılabilir.
Tercih ettiğiniz bir metin veya kod düzenleyicisi.
Proje oluşturma
Bir komut istemi açın ve depo adlı bir klasör oluşturun.
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.
Not
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 hedeflemek için, aşağıdaki örnekte gösterildiği gibi öğesini proje dosyasındaki birTargetFrameworks
öğeyle değiştirinTargetFramework
:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFrameworks>net8.0;net6.0</TargetFrameworks> </PropertyGroup> </Project>
microsoft.botsay klasörüne gidin.
cd microsoft.botsay
Kod ekleme
Kod düzenleyicinizle Program.cs dosyasını açın.
Program.cs dosyasındaki 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önergesi
using System.Reflection;
, sonraki adımda eklediğiniz kod tarafından gereklidir.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öntemi çağrılarak
ShowBot
yazdırılır.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); }
Yaptığınız değişiklikleri kaydedin.
Uygulamayı test edin
Projeyi çalıştırın ve çıktıyı görün. Farklı sonuçlar görmek için komut satırında şu çeşitlemeleri 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.
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>
, yüklendikten sonra aracı çağıracak komutu belirten isteğe bağlı bir öğedir. Bu öğe sağlanmazsa, aracın komut adı derleme adıdır ve bu genellikle .csproj uzantısı olmayan proje dosyası adıdır.<PackageOutputPath>
, NuGet paketinin nerede üretileceğini belirleyen isteğe bağlı bir öğedir. NuGet paketi, .NET CLI'nın aracınızı yüklemek için kullandığı pakettir.Proje dosyası artık 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>
dotnet pack komutunu çalıştırarak bir NuGet paketi oluşturun:
dotnet pack
microsoft.botsay.1.0.0.nupkg dosyası, bu örnekte ./nupkg klasörü olan microsoft.botsay.csproj dosyasındaki değerle
<PackageOutputPath>
tanımlanan klasörde oluşturulur.Bir aracı herkese açık olarak yayınlamak istediğinizde, aracı adresine
https://www.nuget.org
yü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
Öğ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şturdunuz ve bunu bir araç olarak paketlediyseniz. Aracı genel bir araç olarak kullanmayı öğrenmek için sonraki öğreticiye geçin.
İsterseniz genel araçlar öğreticisini atlayabilir ve doğrudan yerel araçlar öğreticisine gidebilirsiniz.