.NET Tools คือ อะไร
- Utility เล็กๆ ที่เราสามารถเรียกใช้งานได้เลย ไม่ต้องไปตั้ง Path วางให้วุ่นวาย Install ใช้จบเลย และถ้าหาก Publish ขึ้น NuGet Gallery เราสามารถดึงลงมาติดตั้งได้ง่ายๆเลยครับ
แปลง Console App ให้เป็น .NET Tools (NuGet)
Prerequisite: CS Project ต้องเป็นรูปแบบใหม่ที่มากับ .NET Standard ครับ ถ้า .NET Framework แบบเดิมๆ ทางที่ดีแนะนำให้ขยับเป็น .NET LTS ครับ โดยผมใช้ Project ที่ทำมานานหลายปีแล้ว pingkunga/MergeDOTNETTestReport มาเป็นตัวอย่างที่ลองแปลง Console App ให้เป็น .NET Tools
ขั้นตอนการแปลง Console App ให้เป็น .NET Tools เริ่มจากใน Visual Studio คลิกขวาที่ Project เลือก Properties เข้ามาในส่วน Package ครับ
- ปรับให้ตอนสั่ง Build ให้สร้าง NuGet Package เลือก Generate NuGet package on Build อันนี้เทียบเท่ากับการใช้ Command dotnet pack ครับ
- บอกให้ตอน Pack NuGet ให้มันปรับเป็น .NET Tools โดยเลือก Pack as a .NET Tool
- สำหรับ Property อื่นๆของ NuGet เช่น พวก Version สามารถมากำหนดได้ เพิ่มได้ครับในส่วนของ Package Version ได้ครับ
- สำหรับใครที่ขี้เกียจกด สามารถเข้าไปแก้ csproj ได้ โดยตรงครับ Line 5-9
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> <PackAsTool>True</PackAsTool> <AssemblyVersion>1.0.1.0</AssemblyVersion> <FileVersion>1.0.1.0</FileVersion> <Version>1.0.1</Version> </PropertyGroup> <ItemGroup> <PackageReference Include="HtmlAgilityPack" Version="1.11.46" /> </ItemGroup> </Project>
- ลอง Build จะได้ NuGet Package ออกมาครับ ที่ bin/<Configuration Mode> เช่น bin/Debug เป็นต้นครับ
นำ .NET Tools ที่ได้ไปติดตั้ง
กรณีที่ Publish ขึ้น nuget.org หรือ local repository อย่างตัว nexus เป็นต้น แล้วคร้บ
- Install
##Synopsis dotnet tool install --global <<PACKAGE_NAME>> ##Sample Use dotnet tool install --global MergeDOTNETTestReport You can invoke the tool using the following command: MergeDOTNETTestReport Tool 'mergedotnettestreport' (version '1.0.0') was successfully installed.
- Update
##Synopsis dotnet tool update --global <<PACKAGE_NAME>> ##Sample Use dotnet tool update --global MergeDOTNETTestReport Tool 'MergeDOTNETTestReport' was successfully updated from version '1.0.0' to version '1.0.1'.
กรณีที่เอา NuGet Tools ไปติดตั้งเอง ให้เอา Package ไปที่ Path ของเครื่องที่ต้องการติดตั้ง เช่น เอาไปไว้ใน "D:\06Utility\nupkgForBuild" เป็นต้น
- Install
##Synopsis dotnet tool install --global --add-source <<NUGET_PACKAGE_PATH>> <<PACKAGE_NAME>> ##Sample Use dotnet tool install --global --add-source "D:\06Utility\nupkgForBuild" MergeDOTNETTestReport You can invoke the tool using the following command: MergeDOTNETTestReport Tool 'mergedotnettestreport' (version '1.0.0') was successfully installed.
- Update
##Synopsis dotnet tool update --global --add-source <<NUGET_PACKAGE_PATH>> <<PACKAGE_NAME>> ##Sample Use dotnet tool update --global --add-source "D:\06Utility\nupkgForBuild" MergeDOTNETTestReport Tool 'MergeDOTNETTestReport' was successfully updated from version '1.0.0' to version '1.0.1'.
สำหรับการใช้งานเหมือนเดิมครับ เรียกชื่อ Package ตรงๆ เหมือน exe ได้เลย ไม่ต้องมากังวลว่าต้องกำหนด Path ผิดด้วย ลง Tools แบบ --global เรียกได้ทุกจุดครับ ^__^
Reference
- dotnet tool install command - .NET CLI | Microsoft Learn
- [.NET] Merge DOTNET Test Report | naiwaen@DebuggingSoft
- .NET tools - .NET CLI | Microsoft Learn
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.