這篇文章的主要目的:
1.搭建自己的私有的nuget伺服器
2.打包程式碼為nuget包
3.在其他專案中使用私有伺服器上的nuget包
一. 搭建自己的nuget伺服器
1. 建立一個空的ASP.NET Web 應用程式
2.使用nuget管理器,新增nuget.server包
安裝成功以後,目錄結構如下圖
3. 在專案上右鍵 生成網站 ,並執行
效果如下:
從圖中可以看出,錯誤原因:
web.config中有節點重複錯誤
4. 修改web.config中的錯誤節點:即刪除重複節點 compilation
刪除下面的compilation節點
5.重新編譯,生成網站,並執行
點選here
如上所示,則nuget伺服器搭建成功
然後,把專案釋出到 本地 IIS 伺服器上
附錄:
這裡附上 IIS 的釋出
(1). 右鍵專案,釋出
(2). 選擇資料夾,及設定釋出路徑
(3). 點選上個步驟中的釋出按鈕
如圖,釋出成功
(4). 在IIS中新增網站
(5). 可以做如下配置,點選確定
注意,點選確定後,確保應用程式池中相應的應用是4.0版本
即,把2.0的修改為4.0
(6). 瀏覽 http://localhost:8090/
點選,第一個here
如上,網站在IIS部署成功
二. 把程式碼打包為nuget包
1.右鍵點選解決方案,新增,新建專案
2. 如下圖,新增類庫
3. 右鍵ClassLibrary1類庫,點選生成
4. 進入專案所在資料夾,並把nuget.exe複製到該資料夾下
注意:nuget.exe下載路徑,在這
如上圖,並在該目錄進入cmd命令
5. 在該目錄下,操作cmd命令
回車後,生成如下則表示成功
同時,該資料夾下,多出一個 .nupkg 檔案
6.現在nuget包就已經打好了
但是,如果我們想在我們的私有nuget伺服器上有這個包,我們還需要把.nuget檔案傳到我們私有nuget伺服器上;
如果有需要,可以自己在nuget私有伺服器專案中新增一個上傳功能,這裡選擇簡單方式。
即直接把打包生成的.nuget檔案直接複製貼上到 nuget伺服器的 Packages 資料夾下,
這裡的路徑為:G:\Dot_NET\wwwroot\nugetserverdemo\Packages
得到上圖,
綜上,ClassLibrary1的nuget包就已經在我們的nuget伺服器上了。
訪問網站,點選第一個here,可以得到,如下:
三. 在其他專案中,使用我們私有nuget伺服器上的nuget包
1. 右鍵解決方案,新增一個新的專案
選擇ASP.NET Web應用程式 ,專案名稱 NugetTest
選擇mvc
最後,點選確認
2. 進入nuget包管理器,配置程式包源
如下,把本地nuget私有伺服器地址新增
3.選擇 private nuget.test 源,如下
可以正常顯示nuget私有伺服器上的ClassLibrary1的nuget包,故這裡就算成功了。
四. 最後,這裡再說下,自己的一些嘗試結果
1. 在搭建nuget私有伺服器時,因為有nuget.server.core,所以,剛開始,有試過建立dotnet core 的版本,但是顯示的有部分不相容。所以,直接就放棄了,沒有試驗。
2. 還有就是中間,在搭建nuget私有伺服器時,有嘗試建立 以前老版本的ASP.NET 空網址,但是在引入nuget.server 3.x 版本以後,雖然,網站建立起來了,
但是,點選網站的第一個here時,並不能正常訪問,所以,也失敗。
3 . 還有就是剛開始,在IIS上部署的時候,部署會報500的錯誤,也浪費了一些時間,之後我嘗試建的asp.net core webapi專案釋出到IIS後,也會報錯,
這裡只說下解決的辦法,因為本機環境dotnet core 2.2 版本,之前裝的runtime版本是2.1.6 ,在釋出到IIS以後,不知道什麼原因有500的錯誤;之後下載最近的hosting 2.2.5版本,IIS終於可以正常了。
注意:如果你的IIS在部署dotnet core專案時,出現問題,可以嘗試下載最新的 runtime 試試 能否解決 ,這裡給出 地址