1. 背景
網(wǎng)上大部分是自己搭建的窖逗,這里我在github 上直接拿別人的項目 https://github.com/loic-sharma/BaGet/releases
-
下載包
-
解壓到本地或者服務器上并修改 appsettings.json 文件
"ApiKey": "69279c9e-c6f4-48ee-8d9d-72d38dab4b95",
"PackageDeletionBehavior": "harddelete",
"Urls":"http://*:9020",
"AllowPackageOverwrites": true,
上圖中是比較重要的幾個參數(shù)敲董,
“ApiKey”是密鑰贮勃,每次推送或者刪除Nuget包時都需要輸入這個代碼;
“Urls”是路由地址和端口號,原來是5000,需要改為8020;
“PackageDeletionBehavior"是刪除方式甘改,默認“Unlist”,刪除時不會將源文件刪除灭抑,只是在前端顯示時看不到了十艾,這會導致再次*
推送同一個包時報錯,所以這改為"harddelete”腾节,將原來的包徹底刪除忘嫉。"AllowPackageOverwrites"是是否允許覆蓋荤牍,默認“false”,不允許覆蓋庆冕,改為true之后推送新的包會將原來的包覆蓋掉康吵。
3. 開啟nuget服務(用IIS部署和正常項目一樣)
- cmd 到目錄 ,執(zhí)行 dotnet BaGet.dll
4. 訪問地址
5 項目dll 打包
6. 推送
- dotnet nuget push -k <密鑰> -s http://192.168.1.:9/v3/index.json <包名>.nupkg
E:\項目\2022年項目\****\SdNurseryMall\src\com.uplus.tree\bin\Debug>dotnet nuget push -k 69279c9e-c6f4-48ee-8d9d-72d38dab4b95 -s http://192.168.1.***:9***/v3/index.json com.uplus.tree.1.0.0.nupkg
正在將 com.uplus.tree.1.0.0.nupkg 推送到 'http://192.168.1.**:90**/api/v2/package'...
PUT http://192.168.1.**:90**/api/v2/package/
Created http://192.168.1.**:90**/api/v2/package/ 1245 毫秒
已推送包访递。
7. 結(jié)果
8 . VS2019 中配置
-
在VS軟件中晦嵌,選擇“工具-Nuget包管理器-程序包管理器設置”,選擇程序包源拷姿,
-
第一個nuget.org就是默認我們通過網(wǎng)絡獲取程序包的地址惭载,第二個是我新添加的本地的nuget包地址,方法是點擊 “+”响巢,新增源棕兼。在名稱中輸入我們?yōu)檫@個源起的名字,源中輸入路由地址抵乓,這個地址可以在服務的網(wǎng)頁上看到,如果是添加服務器源的話靶衍,就將IP改為對應的地址就好灾炭。
9. VS 中查看
9. 補充
刪除包:命令行輸入dotnet nuget delete -s http://localhost:8020/v3/index.json xxx 1.0.0,就可以把服務器上的包刪除掉,注意這里只寫“包名 版本號”就行颅眶,“.nupkg”的后綴也不用加蜈出。
需要注意這里的命令是在配置文件中沒有設置密鑰的情況下,如果設置了就需要在命令行中加入密鑰才可以執(zhí)行操作涛酗。
設置包的信息:在項目右鍵屬性铡原,選擇打包,在里面可以設置版本號商叹,作者等信息燕刻。下載自己推送的包
包已經(jīng)被推送到服務器上了,下面就是當我們需要的時候下載它剖笙。在“工具-Nuget包管理器-管理解決方案的Nuget程序包”中最右邊“程序包源”選擇我們自己創(chuàng)建的"UplusNuget",就可以在左邊看到我們已經(jīng)推送的包卵洗,點擊包在右側(cè)會出現(xiàn)包的信息,選擇版本弥咪,進行下載过蹂。
關于包的依賴關系,如果A包依賴B包聚至,我們將兩個包都已經(jīng)推送到服務器酷勺,那么在我們下載A包時,會自動也下載B包扳躬。如果服務器上只有A包脆诉,那么在下載時就會報錯甚亭,找不到B包。
關于包的加密库说,為了保障包的安全狂鞋,防止下載 后對包進行反編譯,需要進行一些保護潜的,但目前還沒有找到比較好的方式骚揍,待添加。