Выполнить действие после установки моего пакета nuget

Мы создали множество пакетов NuGet. Один из них является инструментом, содержит специальный компилятор и устанавливается как dotnet tool. Название команды "PolyGen".

Мы использовали механизм, аналогичный тому, что использует Grpc.Tools, это означает, что мы определили файл .targets внутри нашего NugetPackage. И это работает хорошо.

Но когда я обновляю свой PolyGen, впоследствии мне приходится обновлять инструмент dotnet вручную с помощью команды dotnet tool update.

Но я вижу, что при обновлении Grpc.Tools автоматически выполняется обновление инструмента dotnet. И консоль диспетчера пакетов написала следующее сообщение:

Executing nuget actions took 181,36 ms

Как мы можем определить эту автоматически выполняемую команду, чтобы избежать ручного обновления?

Спасибо вам, ребята!


person György Gulyás    schedule 29.09.2019    source источник


Ответы (1)


Вы можете использовать init.ps1 сценарий powershell для выполнения этой задачи. Этот скрипт выполняется каждый раз после установки пакета на целевых машинах.

Просто создайте файл init.ps1 в папке tools/ вашего определения пакета со следующим содержимым:

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

# Write all required actions on powershell here.

Но имейте в виду, что init.ps1 также выполняется каждый раз при открытии решения. Если вам нужно выполнить его только один раз после установки пакета NuGet, вы можете вставить параметр условия и сохранить его значение в папке установки вашего пакета (например, в файле).

person picolino    schedule 16.03.2020
comment
Он будет работать только на платформе Windows. Что насчет линукса. - person vikky; 28.07.2021