如何为 OneGet Install-Package 创建可执行包?

How can I create executable package for OneGet Install-Package?

我了解如何为 NuGet 创建包。创建 NuGet 包或 PowerShell 包也没有什么特别困难的。

我知道在 .NET Core 中使用二进制 cmdlet 创建 PowerShell 包可能是不可能的,所以想知道是否可以使用生命周期挂钩创建包。

比如说,在npm中,你可以在package.json中定义scripts来声明pre/post install/publish依赖关系。

所以,问题是:

通过Install-Package将我的包添加到系统后如何执行自定义脚本?

例如,我想将可执行文件添加到 PATH(可能是很常见的任务)

这个很可能会起作用: project.json#scripts 请注意,平台可执行文件允许使用有效值,因此,据我所知,默认情况下不允许使用 PowerShell。

快速解决方法,只要参数可用:

runner.cmd:

@powershell -File %1

并在 project.json 中:

"scripts": {
    "postrestore": "%project:Directory%/scripts/runner.cmd %project:Directory%/scripts/install.ps1"
}