[英]Howto install a PowerShell binary cmdlet (C#) from a NuGet package with its dependencies
我已經使用 C# 開發了一個二進制 cmdlet。 項目的 TargetFramework 是netstandard2.0 ,程序集(dll)作為 NuGet 包發布。 該程序集以及 NuGet 包具有一些依賴項(即其他 NuGet)。
使用 PowerShell 在本地計算機上安裝我的二進制 cmdlet 的最佳方法是什么,以便我的 cmdlet 在該計算機上可用以從 PowerShell 腳本調用。 即,我是否可以使用 Powershell 命令安裝 NuGet,以便我的 DLL 及其依賴項可用於 PowerShell?
從 PowerShell 7.2 開始,不支持直接安裝 NuGet 包。
您的選擇是:
如果可行,請將您的二進制 cmdlet 及其依賴項重新打包為 PowerShell 模塊,然后可以通過Import-Module
進行安裝:
*.psd1
),其中包含有關模塊的元數據以及構成模塊實現的文件; 在模塊包裝 cmdlet DLL 的情況下,清單的RootModule
條目引用該 DLL,而RequiredAssemblies
條目引用依賴項。Publish-Module
發布一個模塊時,會打包成一個NuGet包,帶有Import-Module
理解的自定義結構; 通常,PowerShell 模塊會發布到PowerShell Gallery 。否則,使用輔助。 .NET SDK 項目來安裝您的 NuGet 包,這是此答案中概述的一個重要過程。
Add-NuGetType
,它可以自動執行該過程並另外支持 PowerShell (Core) 7+ 中的本機庫依賴項,如本答案中所述; 但是,請注意后者不提供嚴格的版本控制,因此不應在生產中使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.