如何在编译过程中自动运行dotnet工具

问题描述 投票:0回答:0

简介

我想编写一个 NuGet 包,在编译之前自动执行 dotnet 工具。 dotnet 工具将处理文件,并生成(非代码)输出。

通过将

.targets
文件添加到我的 NuGet 包中可以轻松完成此操作:

\build
  \My.Package.targets

我们

Exec
工具:

<!-- My.Package.targets -->
<Project>
  <ItemGroup>
    <FilesToProcess Include="**/*.my_extension" />
  </ItemGroup>

  <Target Name="Run Tool" BeforeTargets="CoreCompile">      
    <Exec Command="dotnet my-tool -input %(FilesToProcess.Identity)" />
  </Target>
</Project>

但是,这仍然需要用户创建工具清单,并在构建项目之前安装该工具。

dotnet new tool-manifest
dotnet tool install My.Tool

我想使其自动化 - 开发人员的过程应该像“安装 NuGet 包,它将自动安装/引用该工具”一样简单。

你为什么不使用...


为什么不使用
DotNetCliToolReference
来引用该工具?

[自 .NET Core 2.2 起不再受支持。

为什么不使用源生成器?

源生成器有 2 个关键限制 - 它们只能生成代码文件,不能生成任何其他类型的文件,并且不允许 IO。

为什么不在自述文件中添加有关如何安装该工具的说明?

我可以添加说明

请记住在构建此项目之前运行

dotnet new tool-manifest
dotnet tool install My.Tool

但我坚信在开始新项目时应该减少摩擦。我尝试自动化任何过去的“克隆存储库,并在您选择的编辑器中打开解决方案”。

为什么不将工具重写为 MSBuild 任务?

不幸的是,我不拥有该工具 - 它是第 3 方工具。

相关问题

msbuild nuget dotnet-tool
© www.soinside.com 2019 - 2024. All rights reserved.