我们创建了很多NuGet软件包。其中一个是工具,它包含特殊的编译器,并且像dotnet tool
一样安装。该命令的名称为“ PolyGen”。
我们使用了类似Grpc.Tools
使用的机制,这意味着我们在NugetPackage中定义了.targets文件。而且效果很好。
但是当我更新PolyGen时,必须使用dotnet tool update
命令手动更新dotnet工具。
但是我看到Grpc.Tools
更新时,将自动执行dotnet工具更新。软件包管理器控制台将以下消息写入:
Executing nuget actions took 181,36 ms
我们如何定义此自动执行的命令,以避免手动更新?
谢谢你们!
答案 0 :(得分:7)
您可以使用init.ps1
powershell脚本来完成此任务。在将软件包安装到目标计算机上之后,每次都会执行此脚本。
只需在包定义的init.ps1
文件夹中创建文件tools/
,并使用以下内容:
param($installPath, $toolsPath, $package, $project)
# Write all required actions on powershell here.
但是请注意,init.ps1
也会在解决方案每次打开时执行。如果您只需要在安装NuGet软件包后执行一次,则可以插入条件参数并将其值存储在软件包安装文件夹中(例如,在文件中)。