设置 Nuget 本地源、在线私有源、自动构建打包
設置 Nuget 本地源、在線私有源、自動構建打包
本文演示如果在項目中生成 Nuget 包,并添加 Nuget 本地源,不用發布到 Nuget 服務器。再附帶使用在線私有源的簡單方法,以及提交代碼自動拉取構建
本文用項目NewLifeX/X打包為 Nuget 包,項目NewLife.Cube測試
打包 nuget 包
項目右鍵屬性-打包即可,執行之后會生成并打包,生成的 NuGet 包屬性可以在項目屬性面板的打包一項設置,設置版本號、包描述、作者信息等
注意,打包操作相當于生成,也就是說生成過但是沒打包,此時打包并不會生成新的 Nuget 包,需要全部刪除輸出目錄,重新打包
得到 nuget 包
設置 Nuget 源
打包之后需要設置一下 Nuget 源,讓工具知道還原的時候用哪個源
項目右鍵屬性-管理 Nuget 程序包-打開右邊設置圖標進入設置。從截圖可以看到,如果是設置好包源的情況,兩個包都提示可以升級,并且是剛剛生成的新版本,箭頭旁邊的下拉框對應的就是剛剛的包地址,即本地路徑
添加本地目錄作為 Nuget 源,直接填本機目錄。依次打開選項中的 Nuget 包管理器-程序包源-綠色的加號-底下填名稱-點擊三個點按鈕選擇本地路徑-更新-確定
經過以上設置,Nuget 包管理界面右邊的下拉框就會出現剛剛設置的包源,選擇剛剛設置的那個,在瀏覽選項卡就能看到只有這兩個包
團隊共享設置
上面設置的路徑是某臺電腦上的,另一臺電腦對應地址又可能不一樣,那么如何使用同一個設置,并且不用每個人都添加一次 Nuget 源呢?答案就是Nuget.config以及相對地址
首先是Nuget.config,在 VS 打開項目的時候,會自動加載里面的設置,自動添加源,只在本項目有效,并不是全局的。然后包地址設置為相對地址,相對于解決方案所在目錄,兩個項目均處于同一目錄即可。本文的兩個項目輸出目錄均為解決方案所在目錄的上一目錄
在解決方案目錄新建文件Nuget.config,填寫以下內容
!
預覽
可以看到,相對目錄被識別為正確的地址,這樣就可以達到所有人共用此設置的目的,Nuget.config的源排第一位,還原時優先從本地源查找還原
在線私有源
Nuget 官方提供了NuGet.Server,可自行搭建自己的 Nuget 服務器,
這里使用BaGet,使用 Docker 快速搭建一個 Nuget 服務器
以 ubuntu 服務器為例,在當前目錄新建baget.env文件,填寫如下內容,注意 ApiKey,push 包的時候會用到
ApiKey=NUGET-SERVER-API-KEY
Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database
預覽
然后運行容器docker run --rm --name nuget-server -p 5555:80 --env-file baget.env -v $(pwd)/baget-data:/var/baget loicsharma/baget:latest
一切 ok 后就可以推送 Nuget 包了,dotnet nuget push -s http://localhost:5555/v3/index.json -k NUGET-SERVER-API-KEY newtonsoft.json.11.0.2.nupkg,注意推送地址以及 ApiKey,包名的話,一般懶得打可以用*.nupkg
在線自動構建 Nuget 包并發布-myget
使用myget,可以設置自動拉取源碼,自動構建 Nuget 包,并且可以 push 到 nuget.org,所以可以用 myget 來測試
新建 feed
設置構建服務。如果點擊之后沒啥反應,沒有彈窗或者只有黑色的遮罩,這可能是瀏覽器不兼容,換個瀏覽器(這里就是谷歌瀏覽器有問題,其它比如火狐沒事。當然也可以打開控制臺復制那個彈窗地址手動打開)
注意第一個設置,勾選之后,自動注冊 web hook 每次提交觸發構建服務
點擊 build 開始第一次構建,點擊 edit 可進行更多設置,設置包含源碼、生成版本號的規則等
如果構建成功,點擊一個包,即可看到安裝方法,包源為https://www.myget.org/F/{你的feed名}/api/v3/index.json
總結
本文記錄了這些 Nuget 包打包發布步驟,幫助還不知道這些方法但又想嘗試的同學
方法多樣,總有適合自己的,最適合團隊的才是最好的。
?
轉載于:https://juejin.im/post/5c9b34aa5188251c24606ee7
總結
以上是生活随笔為你收集整理的设置 Nuget 本地源、在线私有源、自动构建打包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20_集合_第20天(Map、可变参数、
- 下一篇: 文章发布说明