撰寫PowerShell Module Package

  • 244
  • 0
  • 2021-01-12

如題

工作上會利用powershell寫些script來提升效率,不過檔案的分享都是用copy來解決,感覺很麻煩。

研究了一下PowerShellGet,終算找到如果封裝package的方式。

記錄一下步驟:

  1.  建立資料夾,名稱為module的名字
  2.  在資料夾路徑上,執行powershell指令 New-ModuleManifest,接著輸入和module名字同名的psd1檔名,執行完成會在目錄下產生檔案
  3.  接著建立root module檔案,這個檔案名稱也需要和要發行的名字相同(修正,這個檔案名稱不用和發行名字一樣,但是RootModule需要設定成這個檔案)
  4.  打開psd1檔案,有兩個屬性必須設定,一個是 RootModule,另一個是 Description
  5.  完成module的撰寫後,在psd1上設定要公開的cmdlet和function
  6.  最後執行 Publish-Module -Path 資料夾的路徑 -Repository {要發行的Repository Name} -NuGetApiKey {許可的ApiKey},如果沒有錯誤,就發行成功

發行的Repository需要先用Register-PSRepository註冊,另外如果發行時發生錯誤,可以試著用chocolatey安裝nuget.exe後再試試。

詳細的細節可以參考 https://github.com/anpur/powershellget-module 

補充:

測試時可以先不發行package,只要使用Import-Module <所在的目錄> 即可載入module進行測試