前一篇,我們使用MSBuild來達到Build的時候,自動產生NuGet Package,而當我們使用NuGet Package Explorer打開來看的時候,我們會發現Package metadata的資料也順便的幫我們填上了。
Image may be NSFW.
Clik here to view.
為什麼NuGet Package會知道填甚麼值呢?,那是因為它會自動抓AssemblyInfo.cs檔案,如下圖。
Image may be NSFW.
Clik here to view.
其中的對應表如下圖,我們可以改以下的對應表來產生不同內容的Package metadata,但要特別注意,AssemblyCulture必須保持為空值,不然會NuGet Package的產生,會有問題。
Image may be NSFW.
Clik here to view.
但實際上,AssemblyInfo還是不能涵蓋所有的Package metadata,更理想的狀況還是透過nuspec這個檔案來定義Package metadata;但如果自己要Key nuspec這個檔案也太辛苦了,所以我們可以從nupkg這個檔案,來解壓縮,找到nuspec。
( nupkg其實就是一個zip檔案,大家可以透過7-zip工具,或是直接把nupkg這個副檔名改成zip,就可以順利解壓縮了… )
Image may be NSFW.
Clik here to view.
之後,我們只需要把nuspec拷貝到專案的目錄底下去就可以了,但要特別注意,nuspec的檔案名稱,必須和專案的名稱相同喔!!
Image may be NSFW.
Clik here to view.
完成之後,重build一下,我們就可以發現,這次完全使用nuspec的內容了。
Image may be NSFW.
Clik here to view.
最後,要特別注意,因為我們希望建置NuGet Package的時候,他自動去抓取packages.config這個檔案,來解析相依的問題,所以別忘記把nuspec裡面的相依給移除掉喔。
Image may be NSFW.
Clik here to view.
也就是這行裡面的內容。
<dependencies> <dependency id="Newtonsoft.Json" version="6.0.6" /> </dependencies>
到這邊,就完成嚕!!~
參考資料