NuGet系列-使用NuGet Package Explorer建立nupkg檔

目前建立nupkg檔的方式有二種,使用NuGet命令列工具或NuGet Package Explorer GUI工具,個人是覺得先用NuGet Package Explorer建立NuSpec,之後在用NuGet命令列與MSBuild編譯後自動上傳,會比較方便。

目前建立nupkg檔的方式有二種,使用NuGet命令列工具或NuGet Package Explorer GUI工具,個人是覺得先用NuGet Package Explorer建立nuspec,之後在用NuGet命令列與MSBuild編譯後自動上傳,會比較方便。

 

NuGet Package Explorer下載位址

註:NuGet Package Explorer是一個獨立的exe檔,目前還沒有看到跟Visual Studio整合的管理工具。

 

開啟後,可以選擇打開本地的nupkg或nuspec,或是線上的nupkg(包含官方的nupkg下來修改,只是沒有apiKey無法上傳,但是可以學習別人怎麼樣包nupkg),或建立新的nupkg。

image

 

產生nupkg

選擇Create a new package,會使用範本建立一個nuspec(工具中叫Metadata),必需要按下Edit Package Metadata後才能編輯nuspec。

image

 

設定nuspec

填上基本資料後,比較特別是Dependencies、Framework assemblies、Filtered assembly references這三個選項。

image

 

Dependencies

Dependencies是相依性,這個nupkg所相依的nupkg,在下載nupkg時會同時下載所相依的nupkg,不限同一個Package Source,以Package Id搜尋最先找到的那一個。

image

 

Framework assemblies

安裝時同時將GAC組件加入參考,Supported frameworks輸入方式如下表。

image

 

Filtered assembly references

如果是空的會要將所有lib下的dll加入參加,如果有指定,只加入指定的dll,如下圖最後只有Elmah.dll會加入參考。

image

 

增加Contents

有三個根目錄,content、lib、tools各有不同的作用,新增檔案可以用右鍵新增,或者是直接拖曳檔案到視窗中。

image

  • content
    會加入到專案為一般檔案。

  • lib
    dll檔案會加入參考。

  • Tools
    安裝或反安裝要執行的PowerShell或一些有的沒的檔案。

  • 根目錄
    通常放一些說明或受權資訊。

 

更新Contents

如果是開啟本機nupkg,工具會記錄檔案的絶對路徑,會自動更新內容,但如果是開Server上的nupkg,需要在檔案上按右鍵更新。

image

 

發佈nupkg

NuGet Package Explorer也有提供發佈nupkg的功能,在File > Publish下。

image

 

Publish Key為GUID,要發佈到官網,Key在註冊後會給,要發佈到自己架的NuGet Server,Key為Web.Config中的apiKey。

Only push package to gallery but do not publish it.選項只有發佈到官網才有用。

 

參考文件