目前建立nupkg檔的方式有二種,使用NuGet命令列工具或NuGet Package Explorer GUI工具,個人是覺得先用NuGet Package Explorer建立nuspec,之後在用NuGet命令列與MSBuild編譯後自動上傳,會比較方便。
NuGet Package Explorer下載位址:http://nuget.codeplex.com/releases
開啟後,可以選擇打開本地的nupkg或nuspec,或是線上的nupkg(包含官方的nupkg下來修改,只是沒有apiKey無法上傳,但是可以學習別人怎麼樣包nupkg),或建立新的nupkg。
產生nupkg
選擇Create a new package,會使用範本建立一個nuspec(工具中叫Metadata),必需要按下Edit Package Metadata後才能編輯nuspec。
設定nuspec
填上基本資料後,比較特別是Dependencies、Framework assemblies、Filtered assembly references這三個選項。
Dependencies
Dependencies是相依性,這個nupkg所相依的nupkg,在下載nupkg時會同時下載所相依的nupkg,不限同一個Package Source,以Package Id搜尋最先找到的那一個。
Framework assemblies
安裝時同時將GAC組件加入參考,Supported frameworks輸入方式如下表。
Filtered assembly references
如果是空的會要將所有lib下的dll加入參加,如果有指定,只加入指定的dll,如下圖最後只有Elmah.dll會加入參考。
http://files.dotblogs.com.tw/wadehuang36/1110/NuGet-_4CF8/image_14.png
增加Contents
有三個根目錄,content、lib、tools各有不同的作用,新增檔案可以用右鍵新增,或者是直接拖曳檔案到視窗中。
content 會加入到專案為一般檔案。
lib dll檔案會加入參考。
Tools 安裝或反安裝要執行的PowerShell或一些有的沒的檔案。
根目錄
通常放一些說明或受權資訊。
更新Contents
如果是開啟本機nupkg,工具會記錄檔案的絶對路徑,會自動更新內容,但如果是開Server上的nupkg,需要在檔案上按右鍵更新。
發佈nupkg
NuGet Package Explorer也有提供發佈nupkg的功能,在File > Publish下。
Publish Key為GUID,要發佈到官網,Key在註冊後會給,要發佈到自己架的NuGet Server,Key為Web.Config中的apiKey。
Only push package to gallery but do not publish it.選項只有發佈到官網才有用。
文章原稿:http://www.dotblogs.com.tw/wadehuang36/archive/2011/10/06/nuget-package-explorer.aspx