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