搭建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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...