NuGet 是.NET程式員熟知的工具,它可以直接安裝開源社區中的各個公用組件,可以說是非常方便。不過,有些時候,公司內部的公用的基礎類庫,各個項目都有引用,但又不能發佈到公共的NuGet伺服器上,所以我們需要自己架設一個私有服務,通過NuGet 來的各個項目中用到的公共組件進行管理。就非常的方便。 ...
NuGet 是.NET程式員熟知的工具,它可以直接安裝開源社區中的各個公用組件,可以說是非常方便。不過,有些時候,公司內部的公用的基礎類庫,各個項目都有引用,但又不能發佈到公共的NuGet伺服器上,所以我們需要自己架設一個私有服務,通過NuGet 來的各個項目中用到的公共組件進行管理。就非常的方便。也便於組件版本的管理。
一、NuGet網站構建
1. 創建一個空的ASNET網站註意:將Framework 設置為4.6 以上,NuGet.Server庫 要求.net framework 的版本是4.6 。
2. 用NuGet為 NuGetServer 安裝“NuGet.Server”庫。 安裝成功後,你的Solution會變成這樣一個結構。並且不需要寫任何代碼或更改任何配置,它已經可以運行了。運行此網站,如果看到下麵的歡迎界面,就表示網站已經構建完成了。 註意:Packages里只有一個readme.txt,這個目錄是用來放NuGet包的,點擊 here 連接,可以查看現有的包。
3. 部署網站
這也和部署任何一個ASP.NET網站完全一樣。這裡不細說。二、把代碼打包為NuGet包
1. 去Nuget官網下載nuget command line tool,
下載地址:https://www.nuget.org/downloads
2. 用Nuget打包
Nuget 有兩種打包方式:
A:直接通過工程文件打包dll:
1 創建一個類庫,然後編譯下。把剛纔下載的nuget.exe拷貝到工程文件所在的文件夾中:
2. 通過命令行來創建nuget包:nuget.exe pack
B:使用nuget的spec文件進行打包,。
1. 同樣把要打包的DLL跟NuGet.exe放在一個目錄下,用nuget spec命令創建一個nuspec文件:
2. 打開Package.nuspec文件,可自定義一些配置,。
註意:$description$
使用AssemblyDescriptionAttribute
的值進行替換,在產生package之前,一定要記得先編譯項目,否則會提示$description$
找不到的錯誤;
3. 用 NuGet pack打包成Nuget包:
至此打包完畢。
三、 把NuGet包上傳到伺服器
將打包好的.nupkg 文件 拷貝到 第一步中架好的Nuget伺服器 的Package目錄下。可以Nuget 服務中自己寫一個文件上傳的功能,來降低拷貝的麻煩。
四、配置Visual Studio
Nuget 服務已經架設成功,接下來就要在VS里配置NuGet 源,讓其他的項目可以使用我們的NuGet伺服器。 選擇工具-》Nuget包管理器-》程式包管理控制台,點擊 配置圖標:添加,設置本地的NuGet源名字和地址即可。註意:source 最後是 /nuget
完成後,我們的VS就可以從私服上安裝NuGet包了。五、在其他項目中使用
到目前為止NuGet伺服器端已經配置完成,類庫和DLL文件的打包也介紹完畢, 接下來我們該如何在項目中引用內網NuGet 伺服器中的包呢,步驟如下:
1、 新建一個NuGetTest 項目,然後 工具-》Nuget包管理器-》程式包管理控制台 ,在命令行:install-package IKSDK
2、最後看看效果啦:
至此,內網搭建NuGet伺服器 的過程就介紹完了,,