我已經使用 C# 開發了一個二進制 cmdlet。專案的 TargetFramework 是netstandard2.0,程式集(dll)作為 NuGet 包發布。該程式集以及 NuGet 包具有一些依賴項(即其他 NuGet)。
使用 PowerShell 在本地計算機上安裝我的二進制 cmdlet 的最佳方法是什么,以便我的 cmdlet 在該計算機上可用以從 PowerShell 腳本呼叫。即,我是否可以使用 Powershell 命令安裝 NuGet,以便我的 DLL 及其依賴項可用于 PowerShell?
uj5u.com熱心網友回復:
從 PowerShell 7.2 開始,不支持直接安裝 NuGet 包。
- GitHub 問題 #6724要求提供此類支持。
您的選擇是:
如果可行,請將您的二進制 cmdlet 及其依賴項重新打包為 PowerShell模塊,然后可以通過
Import-Module以下方式安裝:- PowerShell 模塊通常是一個以模塊命名的目錄,其中包含一個模塊清單檔案 (
*.psd1) ,其中包含有關模塊的元資料以及構成模塊實作的檔案;在模塊包裝 cmdlet DLL 的情況下,清單的RootModule條目參考該 DLL,而該RequiredAssemblies條目參考依賴項。 - 當
Publish-Module被呼叫來發布一個模塊,它被打包為NuGet包與自定義結構的是Import-Module理解; 通常,PowerShell 模塊會發布到PowerShell Gallery。 - 也許這是一個可行的起點:創建一個新模塊
- PowerShell 模塊通常是一個以模塊命名的目錄,其中包含一個模塊清單檔案 (
否則,使用輔助。.NET SDK 專案來安裝您的 NuGet 包,這是此答案中概述的一個重要程序。
- 這個 MIT 許可的 Gist包含輔助函式
Add-NuGetType,它可以自動執行該程序,并額外支持PowerShell (Core) 7 中的本機庫依賴項,如本答案所述;但是,請注意后者不提供嚴格的版本控制,因此不應在生產中使用。
- 這個 MIT 許可的 Gist包含輔助函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/358620.html
