日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你搭建使用NuGet私有源

發(fā)布時(shí)間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你搭建使用NuGet私有源 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 前言
  • Who|什么是NuGet
  • Why|為什么用NuGet
  • How|怎么使用NuGet
    • 搭建Nuget私有源
    • 打包Nuget包
    • 發(fā)布到私有源
      • 不開啟密鑰驗(yàn)證
      • 開啟密鑰驗(yàn)證
    • 測試
  • 總結(jié)

前言

相信寫過.net的小伙伴應(yīng)該都用過NuGet來安裝使用第三方或者官方的代碼(程序集),就算你沒用過,那相信你也見過。廢話不多說,直接進(jìn)入主題,拋出靈魂三問(who,why,how),本文主要介紹怎么搭建私有源。

Who|什么是NuGet

截取部分官方解釋:

適用于任何現(xiàn)代開發(fā)平臺的基本工具可充當(dāng)一種機(jī)制,通過這種機(jī)制,開發(fā)人員可以創(chuàng)建、共享和使用有用的代碼。 通常,此類代碼捆綁到“包”中,其中包含編譯的代碼(如 DLL)以及在使用這些包的項(xiàng)目中所需的其他內(nèi)容。

對于 .NET(包括 .NET Core),共享代碼的 Microsoft 支持的機(jī)制則為 NuGet ,其定義如何創(chuàng)建、托管和使用面向 .NET 的包,并針對每個(gè)角色提供適用工具。

簡單理解它其實(shí)就是一個(gè)微軟開發(fā)的包管理工具,就好比如JAVA中的Maven,Node中的NPM,Python中的PIP等等,其實(shí)目前大部分主流的編程語言都有自己的包管理工具。

Why|為什么用NuGet

首先它是個(gè)管理工具,那它就具備有安裝、卸載、升級降級的功能。其次可以打包分享共享自己的代碼供別人使用。最后總結(jié),說白了,就是為了復(fù)用代碼,避免重復(fù)造輪子。


那有小伙伴就會說了

”我可以直接把想復(fù)用的公共代碼,編譯好的程序集放在某個(gè)文件夾中,直接引用不也可以嗎?“

這樣子做也是沒問題,雖說簡單粗暴,但也存在兩個(gè)比較嚴(yán)重的弊端:

  • 難共享,你想想把程序集都放在自己的本地文件夾了,其他人想用你的程序集,豈不是還要去拷貝一次
  • 難管理,且不說程序集的備注說明不直觀,升降級就是個(gè)大問題了,想要升級的時(shí)候,你還得刪除引用,重新引用新的
  • How|怎么使用NuGet

    這里我主要會演示三大部分,分別是搭建Nuget私有源,打包Nuget包,將Nuget包發(fā)布自己的私有源。

    環(huán)境準(zhǔn)備

    名稱版本
    Visual Studio201916.11.18
    dotnet CLI6.0.202
    IIS10

    搭建Nuget私有源

    1、新建一個(gè)解決方案


    2、直接選空模板然后點(diǎn)創(chuàng)建

    3、右擊項(xiàng)目找到=》管理Nuget程序包=》搜索安裝NuGet.Server

    等待安裝完畢,這時(shí)候會多出來幾個(gè)文件,還有web.config多出一些配置,主要配置信息都在appSettings節(jié)點(diǎn)里面。

    • requireApiKey:確定從服務(wù)器推送/刪除包是否需要Api密鑰。默認(rèn)為true
    • apiKey:密鑰
    • packagesPath:更改到packages文件夾的路徑。默認(rèn)值為~/Packages。這可以是虛擬或物理路徑。

    還有其他配置,有需要可以自行再翻譯搜索一下用途

    4、因?yàn)檫@邊我是用windowns環(huán)境在運(yùn)行,所以項(xiàng)目部署IIS跑起來試試看

    打包Nuget包

    1、簡單創(chuàng)建一個(gè).NET Standard的類庫項(xiàng)目

    2、右擊項(xiàng)目=》屬性,找到打包這欄,可以看到里面有很多包的元素

    關(guān)于包的最佳做法,建議大家可以參照官方的指南,或者找個(gè)比較知名的nuget包,看看人家怎么寫的。
    3、然后就可以右擊項(xiàng)目打包或者使用dotnet pack命令打包

    發(fā)布到私有源

    這里我使用的是dotnet 命令來發(fā)布nuget包,當(dāng)然還有其他方式,比如使用nuget CLI命令。
    關(guān)于dotnet涉及nuget的命令,使用dotnet nuget --help查看相關(guān)語句用法

    在展開看看發(fā)布的用法dotnet nuget push --help

    Options:
    -h|–help Show help information
    –force-english-output 使用不變的基于英語的區(qū)域性強(qiáng)制應(yīng)用程序運(yùn)行。
    -s|–source 要使用的包源(URL、UNC/文件夾路徑或包源名稱)。如果在 NuGet.Config 中指定,則默認(rèn)為 DefaultPushSource。
    -ss|–symbol-source 要使用的符號服務(wù)器 URL。
    -t|–timeout 推送到服務(wù)器的超時(shí)值(以秒為單位)。默認(rèn)為 300 秒(5 分鐘)。
    -k|–api-key 服務(wù)器的 API 密鑰。
    -sk|–symbol-api-key 符號服務(wù)器的 API 密鑰。
    -d|–disable-buffering 推送到 HTTP(S) 服務(wù)器時(shí)禁用緩存可減少內(nèi)存使用。
    -n|–no-symbols 如果存在符號包,系統(tǒng)不會將該符號包推送到符號服務(wù)器。
    –no-service-endpoint 請勿將 “api/v2/package” 追加到源 URL。
    –interactive 對于身份驗(yàn)證等操作,允許命令阻止并要求手動操作。
    –skip-duplicate 如果包和版本已存在,則跳過它并繼續(xù)推送中的下一個(gè)包(若有)。

    不開啟密鑰驗(yàn)證

    1、首先要將我們的nuget服務(wù)器站點(diǎn)的web.config的requireApiKey節(jié)點(diǎn)更改成false,這步很關(guān)鍵,如果沒有修改成false,且你又不帶密鑰發(fā)布,那會提示

    error: Response status code does not indicate success: 403 (Forbidden).

    2、打開cmd或者power shell 輸入dotnet命令
    這里我使用powershell

    PS C:\Users\Administrator> dotnet nuget push D:\個(gè)人項(xiàng)目\MyNugetServer\MyNugetServer\TestClassLibrary\bin\Debug\TestClassLibrary.1.0.0.nupkg -s http://localhost:7788/nuget

    開啟密鑰驗(yàn)證

    1、重新修改nuget服務(wù)器站點(diǎn)的web.config配置,將以下節(jié)點(diǎn)調(diào)整,然后保存

    <add key="requireApiKey" value="true" /> <add key="apiKey" value="pwd@123456" />

    2、打開cmd或者powershell 輸入dotnet命令
    這里我使用powershell

    PS C:\Users\Administrator> dotnet nuget push D:\個(gè)人項(xiàng)目\MyNugetServer\MyNugetServer\TestClassLibrary\bin\Debug\TestClassLibrary.1.0.0.nupkg -k pwd@123456 -s http://localhost:7788/nuget


    最后看看是不是nuget包是否成功上傳到nuget服務(wù)器站點(diǎn)。
    以我這邊演示的例子來說,我nuget服務(wù)器部署的目錄在D:\個(gè)人項(xiàng)目\publish\MyNugetServer ,然后找到打開里面的Packages文件夾。

    測試

    1、打開VS=》工具=》選項(xiàng)=》NuGet包管理器=》程序包源,新增一個(gè)自己的包源,然后確認(rèn)保存。

    2、隨意打開一個(gè)項(xiàng)目,切換到自己的程序包源,然后看看是否存在剛剛上傳的包

    總結(jié)

    簡單使用操作就到此一游,更多高級玩法直接上官方文檔看教程,還是那句話,官網(wǎng)永遠(yuǎn)是最好的老師。
    886

    總結(jié)

    以上是生活随笔為你收集整理的手把手教你搭建使用NuGet私有源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。