【问题标题】:Execute an action after my nuget package is installed安装我的 nuget 包后执行操作
【发布时间】:2020-01-29 03:54:10
【问题描述】:

我们已经创建了很多 NuGet 包。其中一个是工具,它包含一个特殊的编译器,它的安装方式类似于dotnet tool。该命令的名称是“PolyGen”。

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

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

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

Executing nuget actions took 181,36 ms

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

谢谢你们!

【问题讨论】:

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


    【解决方案1】:

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

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

    param($installPath, $toolsPath, $package, $project)
    
    # Write all required actions on powershell here.
    

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

    【讨论】:

    • 它只适用于Windows平台。 Linux 呢。
    猜你喜欢
    • 2022-11-02
    • 2021-08-11
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多