搭建Nuget伺服器(Nuget私服)

来源:https://www.cnblogs.com/snailblog/archive/2019/09/13/11517738.html
-Advertisement-
Play Games

一、前言 對公司或者對個人來說,經過一段時間的沉澱之後,都會有一些框架或者模塊,為了對這些框架或者模塊進行更好的管理和維護,也為了方便後面的開發或者其他同事,我們可以在我們本地或者內網搭建一個Nuget伺服器。當然也可以把相關的Package提交到Nuget官方上去,只是提交上之後,就相當於公開了。 ...


一、前言

對公司或者對個人來說,經過一段時間的沉澱之後,都會有一些框架或者模塊,為了對這些框架或者模塊進行更好的管理和維護,也為了方便後面的開發或者其他同事,我們可以在我們本地或者內網搭建一個Nuget伺服器。當然也可以把相關的Package提交到Nuget官方上去,只是提交上之後,就相當於公開了。怎麼提交到官方,可以去官方網站http://www.nuget.org/找相關的攻略,這裡我們將講解怎麼搭建一個Nuget私服。

二、搭建Nuget私服

先創建一個命名為“PFTNugetSystem”的空白解決方案,然後添加web站點(這裡我們使用.NET Framework框架的web程式)

image

項目名稱我們命名為“PFT.NugetServer”,在下麵的界面中,我們選擇“空”模板,然後HTTPS不勾選。備註:請一定選擇“空”模板

image

創建成功之後,如果下圖

image

使用Nuget工具添加“NuGet.Server”包,添加成功之後會自動生成如下文件

image

打開Web.config

因為我們的框架是.NET Framework框架是4.7.2版本,所以註釋掉下麵的4.6版本的compilation節點

image

在appSettings下麵,主要的配置:requireApiKey,apiKey和packagesPath。他們都有註釋相信大家一看就知道

image

然後我們就可以對“PFT.NugetServer”直接發佈,併發布到本地的IIS,發佈成功之後瀏覽網站如圖所示:

image

三、NuGet程式包的製作和發佈

可以利用開發用具“Visual Studio”和“NuGet Package Explorer”實現打包。

3.1、Visual Studio打包和發包教程

在解決方案“PFTNugetSystem”,創建一個“PFT.TestPackage”的類庫,然後添加一個“PackageHelper.cs”,添加如下方法

public string GetPackageName(string name)
        {
            return $"名稱{name}";
        }

然後打開項目“PFT.TestPackage”的屬性,選擇“打包”

image

根據實際情況填寫相關信息。如果項目裡面引用了其他的包,比如“Newtonsoft.Json”,它會自動生成依賴條件。

然後選擇“打包”

1568366923(1)

在輸入欄得到打包的地址,就可以得到包文件“PFT.TestPackage.1.0.0.nupkg”。

image

 

下載NuGet Package Explorer工具,下載地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases  image

下載之後解壓運行“NuGetPackageExplorer.exe”文件image

選擇打開本地包image,選擇我們生成的包,image

然後選擇file=》publish。發佈成功之後,會提示“Package published successfully”

image

然後在Visual Studio工具=》選項=》Nuget包管理 添加本地解析路徑

image

打開管理解決方案的Nuget程式包,選擇本地程式包源

image

 

3.2、NuGet Package Explorer工具打包教程

打開NuGetPackageExplorer工具,然後選擇創建新包image

將生成的dll文件拖進“Package contents”中image,點擊左上角的第一個按鈕,編輯包信息,這裡為了與Visual Studio生成包有區別,這裡我們將包的版本設置為1.0.2,描述改成“Nuget伺服器測試包(NuGetPackageExplorer)”

image

如果對其他的包有依賴關係,就在下麵這個位置 image添加依賴包。

點擊“Edit dependencies”,image

選擇“Newtonsoft.Json”image,

依次點擊加號和okimage

 

 

確定之後image

發佈如上

最後的效果

image

三、總結

經過上面的的過程,我們就可以在搭建的Nuget私服上面愉快的玩耍了。

在處理Nuget私服時,還要註意一個問題,就是Nuget.Config,路徑是%appdata%\NuGet\NuGet.Config,內容如下

image

NugetServer會區分版本,protocolVersion就表示的版本號,V3版本支持json格式,也就是前面地址展現的內容,V2版本支持xml格式,而我們搭建的是V2版本。主要是在自動化部署的時候,如果配置不正確,依賴包會還原失敗。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • _確保高效發展進程的建議_ 很久以前,J2EE,特別是應用程式伺服器被認為過於臃腫和“重量級”。對於開發人員來說,使用此技術開發應用程式會非常繁瑣且令人沮喪。但是,由於 J2EE 框架的名稱已更改為Java EE,因此該假設不再適用。 Java EE 與其他企業框架相比區別在哪以及框架 輕量級 的標 ...
  • go、go、go,大寶貝,我們要go啦! 從go語言基礎到go語言框架,全方面用輕鬆簡潔的語言述說go語言的強大。 16年你錯過了python,如今19年,你還想錯過go嗎??? ...
  • 什麼是二叉堆? 二叉堆是一種特殊的堆。具有如下的特性: 1. 具有完全二叉樹的特性。 2. 堆中的任何一個父節點的值都大於等於它左右孩子節點的值(最大堆),或者都小於等於它左右孩子節點的值(最小堆)。 這個為最大堆: 這個為最小堆: 我們把二叉堆的根節點稱之為堆頂。根據二叉堆的特性,堆頂要嘛是整個堆 ...
  • SpringMVC 視圖解析器 InternalResourceViewResolver 視圖解析器流程 底層源碼分析 ...
  • from django.shortcuts import render,redirect # Create your views here. import datetime def login(request): print("COOKIES",request.COOKIES) print("SES... ...
  • springboot里連接elk里的logstash,然後寫指定index索引的日誌,而之後使用kibana去查詢和分析日誌,使用elasticsearch去保存日誌。 添加引用 添加配置 指定配置 logstash配置索引 kibana里建立索引 通過kiban菜單去建立索引:Management ...
  • [TOC] 1. C與C++的關係 C++繼承了所有的C特性 C++在C的基礎上提供了更多的新的語法和特性 C++的設計目標是運行效率與開發效率的統一,其開發效率高於C語言 2. 變數聲明與定義 變數可以在使用時定義 C++更強調語言的實用性,所有的變數都可以在需要使用時再定義 C語言中的變數必須在 ...
  • 之前我們說網站反爬蟲的一個常用方法是檢測ip,限制訪問頻率。所以我們要通過設置代理ip的辦法繞過這個限制。有不少提供免費代理ip的網站,像https://www.xicidaili.com/nt/,我們可以從網站上拿到很多代理ip。但是這些ip並不是每個都能用的,或者說,沒幾個能用的。 我們可以用b ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...