引言
一直是用TeamCity來做團隊的Nuget私有服務(wù)器,效果也不錯。最近工作很忙,需要在家干活。不幸的是我們的TeamCity在內(nèi)網(wǎng),在家無法訪問。當(dāng)然,我們可以把TeamCity放到公網(wǎng),但是考慮到TeamCity帶有太多機密信息,萬一被黑太危險。所以決定做一個獨立的Nuget服務(wù)放在公網(wǎng)上,TeamCity自動發(fā)布私有包到這個公網(wǎng)服務(wù)器上。
Nuget本質(zhì)上是一個文件服務(wù),做一個非常簡單。 這里把我搭建Nuget服務(wù)的步驟Step By Step描述下來,給有需要的人參考。希望能有所幫助。
搭建Nuget網(wǎng)站
Nuget可以通過共享目錄等來管理私有包,但是很不方便,一般還是做一個網(wǎng)站來管理。 步驟如下:
創(chuàng)建一個Asp.Net Web應(yīng)用程序:

選擇空模版

安裝Nuget.Server 包,這個包會自動配置好Nuget服務(wù)所需要的東西。

可以在程序包管理器控制臺運行來安裝這個包:Install-Package NuGet.Server
安裝好Nuget.Server后,他會自動配置Web.config文件。但是里面有些內(nèi)容需要修改。如下圖紅線部分:

注意:c:\storageForNugetPackage 需要手工創(chuàng)建好。
Ok!, 私有Nuget服務(wù)器就搭建好了。 簡單嗎 :==)
驗證Nuget服務(wù)器
好了,現(xiàn)在需要來驗證一下這個服務(wù)是否工作正常了, 我寫了一個示例程序,包括服務(wù)器和測試用包??梢詮?a target="_blank" rel="nofollow">示例代碼獲取完整源代碼。(有用的話,給打個星唄)。獲取源代碼后,按照ReadMe.txt的步驟即可驗證Nuget私有服務(wù)器。
創(chuàng)建一個私有的Nuget包的步驟:

圖有點下,我把文字復(fù)制在下面
- 啟動運行Nuget.Private網(wǎng)站
- 在PackageSample工程目錄下,運行Nuget pack PackageSample.nuspec 生成PackageSample.0.0.2.nupkg包
- 在PackageSample工程目錄下,運行Nuget push PackageSample.0.0.2.nupkg Please.Change.To.Your.Nuget.Private.Key -Source http://localhost:55545/nuget
- 在c:\StorageForNugetPackage目錄可以看到PackageSample已經(jīng)上傳了。也就是你可以引用自己的Nuget服務(wù)器來維護私有包了
好經(jīng)過上面的步驟,我們的PackageSample.0.0.2已經(jīng)發(fā)布好了,現(xiàn)在是開始要用了:
首先我們需要在Visual Studio中添加我們自己的Nuget地址,通過 工具=>選項 打開選項框,找到Nuget包管理器,增加一個新的程序包源如下圖: (注意,http://localhost:55545/nuget 是我示例代碼上網(wǎng)站的地址,如果你自己創(chuàng)建的網(wǎng)站,端口可能不同。)

見證奇跡的時刻到了,現(xiàn)在可以在nuget中找到剛才上傳的包了

注意:需要在程序包源中選擇Nuget.Priavte(上一步添加的程序包源),在瀏覽中就可以看到自己的包了。
申請域名和SSL
好了,萬事俱備,只待發(fā)布到公網(wǎng)上了。
但是只是一個團隊內(nèi)部用的服務(wù)器,我也要去申請ICP備案,是不是有點無聊???
這里有一個辦法,在國外申請一個域名,然后用SSL,那么就可以繞過備案需要,阿里或者騰訊不會墻掉你的網(wǎng)站了。關(guān)于申請SSL,建議閱讀 我寫的Let's Encrypt 一個好用的免費SSL
參考內(nèi)容:
https://docs.microsoft.com/en-us/nuget/hosting-packages/nuget-server