Buat Alat CLI khusus yang dapat didistribusikan dengan nuget

Saya menulis program konsol inti .net yang menghasilkan beberapa kode untuk membantu saya mempercepat proses pengembangan saya. Sekarang saya ingin mendistribusikan program konsol ini melalui nuget, sehingga saya dapat menggunakan alat ini di proyek lain seperti alat baris perintah dari Entity Framework. Tapi saya membaca dimana-mana, nuget itu hanya digunakan untuk perpustakaan kelas. Tapi saya ingin paket saya bisa berjalan dan tidak digunakan untuk impor dan sejenisnya. Dan jelas Microsoft melakukan itu dengan Entity Framework Tools, jadi menurut saya pasti ada caranya.

Dapatkah seseorang menunjukkan saya arah yang benar?

Saya menemukan pertanyaan ini (Praktik terbaik untuk menyertakan aplikasi konsol di NuGet ) tapi masalahnya, jawabannya adalah, tidak mungkin, dan memang demikian, seperti yang Anda lihat dengan EF Tools.


person Simons0n    schedule 17.03.2018    source sumber


Jawaban (1)


Saya menemukan solusi dan sudah berhasil membagikan paket konsol di nuget.org

Anda dapat membuat ekstensi baris perintah untuk alat dotnet. Seperti dotnet ef Anda dapat membuat perintah dotnet myAwesomeTool. Satu-satunya hal yang perlu Anda lakukan adalah sebagai berikut:

Buat aplikasi konsol dan tambahkan kode berikut ke .csproj Anda

<PackageId>Company.MyAwesomeTool</PackageId>
<AssemblyName>dotnet-myAwesomeTool</AssemblyName>
<PackageType>DotnetCliTool</PackageType>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>

Bangun solusinya dan Anda akan menemukan paket nuget di folder bin Anda. Paket nuget ini dapat didistribusikan dan setelah Anda menginstalnya, Anda dapat menjalankan dotnet myAwesomeTool di proyek tempat nuget tersebut diinstal. Bekerja seperti pesona bagi saya =)

Untuk menginstalnya di proyek lain, tambahkan ini ke csproj:

<ItemGroup>
  <PackageReference Include="company.MyAwesomeTool" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
  <DotNetCliToolReference Include="company.MyAwesomeTool" Version="1.0.0" />
</ItemGroup>

Untuk info lebih lanjut: https://blog.maartenballiauw.be/post/2017/04/10/extending-dotnet-cli-with-custom-tools.html

person Simons0n    schedule 17.03.2018