国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用命令行打包nuget包

2019-11-14 13:52:51
字體:
來源:轉載
供稿:網友

對于那些不打算涉及這么復雜而又想制作自己的 nuget 包的園友們,我是推薦使用 Nuget Package Explorer 來制作的。關于這個圖形化的 nuget 包管理軟件的使用,博客園內有相關的文章,大家可以搜索看看。

 

好,回歸正題。但是我們都知道,圖形化最大的問題就是自動化不高。

QQ截圖20151021183619

這是我其中的一個 nuget 包,可以看見里面的文件還是比較多的,那么我每一次重新編譯,需要發布新版本的時候,就得把里面大部分的文件都替換成新的文件。每次都一個一個的替換,煩啊。而且有時候還得擔心有沒有替換少了。那么自動化打包肯定是值得研究研究一番了。

 

在 nuget 官網上面我們可以找到一篇關于如何創建 nuget 包的教程:https://docs.nuget.org/Create/Creating-and-Publishing-a-Package。

QQ截圖20151021184741

那么我們先下載這個命令行工具下來。

 

然后準備我們需要打包的文件(就是 dll 之類的東西)。

看了下文檔,說是支持讀取直接 csPRoj 文件打包,那我們先試一下吧,畢竟程序員的準則就是能簡單就簡單,能懶就懶。

這里我的項目結構是這樣的:

QQ截圖20151021185512

然后我們運行 cmd 并輸入命令

QQ截圖20151021185839

報了個錯,重新生成一下項目吧,再次運行。

QQ截圖20151021185937

好像成了,看看目錄。

QQ截圖20151021192431

QQ截圖20151021192516

但是這 dll 所屬的分類,錯了吧,我建的可是 Win10 應用程序的 dll。。。

 

既然 csproj 方案不行的話,我們繼續看文檔??匆娪幸粋€通過描述 nuget 包的方案:https://docs.nuget.org/Create/Creating-and-Publishing-a-Package#create-the-manifest

要建立這么一個描述文件也很簡單,跑個命令

QQ截圖20151021192847

QQ截圖20151021192857

然后我們用文本編輯器來打開這個新的 Package.nuspec 文件。

QQ截圖20151021193036

可以看見是一個 xml 文件,然后修改下里面的屬性就可以了。

再次執行。

QQ截圖20151021193538

有警告,簡單看了下,是說不知道應該打包哪些文件。

 

那么繼續找找文檔,最后我們可以發現這個。

QQ截圖20151021193744

修改下我們的 nuspec 文件。

QQ截圖20151021194102

新加上紅色部分,也就是將這個 dll 打包進 nuget 包的 lib/uap10.0/ 這個目錄里面。

再次執行打包命令。

QQ截圖20151021194224

這次沒警告了。

而且包的結構也沒問題。

QQ截圖20151021194328

那么只要編寫好 nuspec 里面的 files 節點的話,以后執行 nuget pack XX.nuspec 這個命令的話,就能夠簡單地生成 nuget 包了。

 

為了再懶一點,我們將上面這個命令弄成批處理。

%~dp0nuget.exe pack %~dp0Package.nuspec -OutputDirectory %~dp0

%~dp0 這個是獲取當前正在執行的這個 bat 文件的所在目錄。

那么最后就變成這樣:

QQ截圖20151021200418

確保這三個文件放在一起,然后執行 package.bat 就能在當前目錄生成 nuget 包了。

 

接下來我們就可以發布 nuget 包了,用命令也行,但保障一點,我還是用 GUI 工具來發布(畢竟發布前再檢查一次還是有必要的)。

用 Nuget Package Explorer 打開上面生成的那個 nuget 包。

QQ截圖20151021201000

按這里就可以了。

注意:一旦發布,nuget 上的包是不能夠刪除的!!只能隱藏,因此,請確保無誤再發布。

 

這里是分割線QQ圖片20150925222632

到最后一步我們已經使用批處理來做了,那么可以再玩的花樣就多去了,例如用 PowerShell 來自動化包的版本。在項目的 AssemblyInfo.cs 有一個 AssemblyVersion 的 Attribute,然后我們就可以用 PowerShell 來先讀取這個版本號,然后修改 nuspec 文件里的 version 節點,再生成包。其實我現在就已經是這么做了QQ圖片20151021201734,鑒于我 PowerShell 也沒學過,那段代碼就不放出來丟臉了QQ圖片20151021201800。大家可以發散思維,期望在 nuget 上能看見園友發布的包包bba_thumb。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保靖县| 罗定市| 水富县| 桃园市| 清流县| 邯郸市| 兴宁市| 巩留县| 岚皋县| 怀仁县| 攀枝花市| 新巴尔虎左旗| 南部县| 辉南县| 桂阳县| 墨脱县| 抚远县| 大关县| 玛沁县| 久治县| 龙口市| 金塔县| 买车| 清远市| 新干县| 龙州县| 方山县| 乐业县| 枣阳市| 昌都县| 保康县| 靖江市| 乌兰察布市| 长治市| 长汀县| 株洲市| 闻喜县| 镶黄旗| 毕节市| 江城| 皋兰县|