一、前言
對公司或者對個人來說,經過一段時間的沉淀之后,都會有一些框架或者模塊,為了對這些框架或者模塊進行更好的管理和維護,也為了方便后面的開發或者其他同事,我們可以在我們本地或者內網搭建一個Nuget服務器。當然也可以把相關的Package提交到Nuget官方上去,只是提交上之后,就相當於公開了。怎么提交到官方,可以去官方網站http://www.nuget.org/找相關的攻略,這里我們將講解怎么搭建一個Nuget私服。
二、搭建Nuget私服
先創建一個命名為“PFTNugetSystem”的空白解決方案,然后添加web站點(這里我們使用.NET Framework框架的web程序)
項目名稱我們命名為“PFT.NugetServer”,在下面的界面中,我們選擇“空”模板,然后HTTPS不勾選。備注:請一定選擇“空”模板
創建成功之后,如果下圖
使用Nuget工具添加“NuGet.Server”包,添加成功之后會自動生成如下文件
打開Web.config
因為我們的框架是.NET Framework框架是4.7.2版本,所以注釋掉下面的4.6版本的compilation節點
在appSettings下面,主要的配置:requireApiKey,apiKey和packagesPath。他們都有注釋相信大家一看就知道
然后我們就可以對“PFT.NugetServer”直接發布,並發布到本地的IIS,發布成功之后瀏覽網站如圖所示:
三、NuGet程序包的制作和發布
可以利用開發用具“Visual Studio”和“NuGet Package Explorer”實現打包。
3.1、Visual Studio打包和發包教程
在解決方案“PFTNugetSystem”,創建一個“PFT.TestPackage”的類庫,然后添加一個“PackageHelper.cs”,添加如下方法
public string GetPackageName(string name) { return $"名稱{name}"; }
然后打開項目“PFT.TestPackage”的屬性,選擇“打包”
根據實際情況填寫相關信息。如果項目里面引用了其他的包,比如“Newtonsoft.Json”,它會自動生成依賴條件。
然后選擇“打包”
在輸入欄得到打包的地址,就可以得到包文件“PFT.TestPackage.1.0.0.nupkg”。
下載NuGet Package Explorer工具,下載地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases
下載之后解壓運行“NuGetPackageExplorer.exe”文件
然后選擇file=》publish。發布成功之后,會提示“Package published successfully”
然后在Visual Studio工具=》選項=》Nuget包管理 添加本地解析路徑
打開管理解決方案的Nuget程序包,選擇本地程序包源
3.2、NuGet Package Explorer工具打包教程
打開NuGetPackageExplorer工具,然后選擇創建新包
將生成的dll文件拖進“Package contents”中,點擊左上角的第一個按鈕,編輯包信息,這里為了與Visual Studio生成包有區別,這里我們將包的版本設置為1.0.2,描述改成“Nuget服務器測試包(NuGetPackageExplorer)”
發布如上
最后的效果
三、總結
經過上面的的過程,我們就可以在搭建的Nuget私服上面愉快的玩耍了。
在處理Nuget私服時,還要注意一個問題,就是Nuget.Config,路徑是%appdata%\NuGet\NuGet.Config,內容如下
NugetServer會區分版本,protocolVersion就表示的版本號,V3版本支持json格式,也就是前面地址展現的內容,V2版本支持xml格式,而我們搭建的是V2版本。主要是在自動化部署的時候,如果配置不正確,依賴包會還原失敗。