一、前言 對公司或者對個人來說,經過一段時間的沉澱之後,都會有一些框架或者模塊,為了對這些框架或者模塊進行更好的管理和維護,也為了方便後面的開發或者其他同事,我們可以在我們本地或者內網搭建一個Nuget伺服器。當然也可以把相關的Package提交到Nuget官方上去,只是提交上之後,就相當於公開了。 ...
一、前言
對公司或者對個人來說,經過一段時間的沉澱之後,都會有一些框架或者模塊,為了對這些框架或者模塊進行更好的管理和維護,也為了方便後面的開發或者其他同事,我們可以在我們本地或者內網搭建一個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版本。主要是在自動化部署的時候,如果配置不正確,依賴包會還原失敗。