如何为 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"
}
我了解如何为 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"
}