搭建Nuget服務器(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版本。主要是在自動化部署的時候,如果配置不正確,依賴包會還原失敗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM