在我的 nuget 包安装后执行一个操作

Gyö*_*yás 6 c# nuget nuget-package nuget-spec

我们已经创建了很多 NuGet 包。其中之一是一个工具,它包含一个特殊的编译器,并且像dotnet tool. 命令的名称是“PolyGen”。

我们使用了与使用类似的机制Grpc.Tools,这意味着我们已经在 NugetPackage 中定义了 .targets 文件。它运作良好。

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

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

Executing nuget actions took 181,36 ms
Run Code Online (Sandbox Code Playgroud)

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

谢谢你们!

pic*_*ino 7

您可以使用init.ps1powershell 脚本来完成此任务。每次在目标机器上安装软件包后都会执行此脚本。

刚创建的文件init.ps1tools/您对此内容的包定义的文件夹:

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

# Write all required actions on powershell here.
Run Code Online (Sandbox Code Playgroud)

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

  • 它仅适用于 Windows 平台。Linux 呢? (2认同)