安装我的nuget软件包后执行操作

时间:2019-09-29 18:18:42

标签: c# nuget nuget-package nuget-spec

我们创建了很多NuGet软件包。其中一个是工具,它包含特殊的编译器,并且像dotnet tool一样安装。该命令的名称为“ PolyGen”。

我们使用了类似Grpc.Tools使用的机制,这意味着我们在NugetPackage中定义了.targets文件。而且效果很好。

但是当我更新PolyGen时,必须使用dotnet tool update命令手动更新dotnet工具。

但是我看到Grpc.Tools更新时,将自动执行dotnet工具更新。软件包管理器控制台将以下消息写入:

Executing nuget actions took 181,36 ms

我们如何定义此自动执行的命令,以避免手动更新?

谢谢你们!

1 个答案:

答案 0 :(得分:7)

您可以使用init.ps1 powershell脚本来完成此任务。在将软件包安装到目标计算机上之后,每次都会执行此脚本。

只需在包定义的init.ps1文件夹中创建文件tools/,并使用以下内容:

param($installPath, $toolsPath, $package, $project)

# Write all required actions on powershell here.

但是请注意,init.ps1也会在解决方案每次打开时执行。如果您只需要在安装NuGet软件包后执行一次,则可以插入条件参数并将其值存储在软件包安装文件夹中(例如,在文件中)。