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

标签 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

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

谢谢你们!

最佳答案

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

只需创建文件 init.ps1tools/包含以下内容的包定义文件夹:

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

# Write all required actions on powershell here.

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

关于c# - 在我的 nuget 包安装后执行一个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58157969/

相关文章:

c# - 有没有更快/更干净的方法将结构复制到 C# 中的数组?

c# - 基于ANTLR v3的成熟编译器

c# - 如何连接MySQL数据库?

c# - ffmpeg.win10 nuget 包文档

visual-studio-2010 - Nuget 包安装/更新在 Visual Studio 2010 中失败,错误为 "Id is required"

c# - 如何动态运行 C# 项目

c# - 正则表达式无法过滤 WinForms 中的 TextBox 字符

asp.net-core - .net 核心 (csproj) global.json 'projects' 等效

powershell - 打印出 Visual Studio PowerShell 变量

f# - 为什么添加一些包会破坏我的代码?