簡體   English   中英

如何從 NuGet 包及其依賴項安裝 PowerShell 二進制 cmdlet (C#)

[英]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進行安裝:

    • PowerShell 模塊通常是一個以模塊命名的目錄,其中包含一個模塊清單文件 ( *.psd1 ),其中包含有關模塊的元數據以及構成模塊實現的文件; 在模塊包裝 cmdlet DLL 的情況下,清單的RootModule條目引用該 DLL,而RequiredAssemblies條目引用依賴項。
    • 當調用Publish-Module發布一個模塊時,會打包成一個NuGet包,帶有Import-Module理解的自定義結構 通常,PowerShell 模塊會發布到PowerShell Gallery
    • 也許這是一個可行的起點: 創建一個新模塊
  • 否則,使用輔助。 .NET SDK 項目來安裝您的 NuGet 包,這是此答案中概述的一個重要過程。

    • 這個 MIT 許可的 Gist包含輔助函數Add-NuGetType ,它可以自動執行該過程並另外支持 PowerShell (Core) 7+ 中的庫依賴項,如本答案中所述 但是,請注意后者不提供嚴格的版本控制,因此不應在生產中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM