使用NUget發布自己的dll(轉)
https://www.cnblogs.com/bile/p/5959707.html
一:Nuget控制臺有幾個常用命令
Get-Package 獲取當前項目已經安裝的類庫
Install-Package 安裝指定類庫,命令格式如下:Install-Package 類庫ID,示例:PM> Install-Package cyqdata
(這裏需要註意的是類庫的ID是唯一的,指向命令後會自動搜索指定類庫源裏指定ID類庫,若找到則自動下載並添加引用,找不到則會出現找不到類庫的提示)
Uninstall-Package 卸載指定類庫,命令格式如下:Uninstall-Package 類庫ID,如Uninstall-Package Newtonsoft.Json
Update-Package 更新指定類庫,命令格式如下:Update-Package 類庫ID,如Update-Package Newtonsoft.Json
二:發布自己的dll到Nuget
NuGet可以使用NuGet.exe在命令行下進行類庫打包,也可以使用圖形化界面進行打包,估計很多朋友都和我一樣對不熟悉的命令行有些感冒,所以在此僅講述下使用圖形化界面進行類庫打包
1. 首先下載 包包管理器 NuGetPackageExplorer,顧名思義,包包管理器可以用來創建新的類庫包,也可以瀏覽已經創建好的類庫包
2. 下載完成後,雙擊 NuGetPackageExplorer.application 進行安裝,安裝完成後會在桌面上生成一個NuGet Package Explorer 的快捷方式
3. 雙擊NuGet Package Explorer出現啟動界面,選擇Create a new package(Ctrl+N)創建一個新包
4. 選擇菜單 Edit > Edit Package Metadata (或者 CTRL + K) 編輯包包信息
這裏可以編輯類庫包的信息和添加類庫、程序集的引用解釋下幾個比較重要的字段
Id:用於定位類庫包的唯一標示,如在命令行下執行 Install-Package MyPackage 這裏的MyPackage就是包包的Id值
Version:類庫的版本號,這裏建議和程序集的真實版本號保持一致,以免發生混淆
Dependencies:此類庫依賴的程序集,根據實際情況添加依賴類庫的Id和版本號,若無留空即可,這裏需要註意下填寫的依賴類庫需要在NuGet服務器上能找到,否則無法完成自動引用添加
Framework assemblies:依賴的Framework 程序集,根據實際需要選擇即可,一般無需設置
除以上四項以外其他屬性根據實際情況修改即可,若自己用不修改也中,不過為了使用方便還是建議把類庫描述(Description)填寫下
5. 編輯好包包信息後接下來添加DLL到包包中
可以選擇 右鍵-->Add Existinng File... 選擇dll添加,也可以直接拖拽DLL到 Package contents 窗口,此例選擇拖拽方式
直接拖拽dll到窗口後,會出現提示:是否將 Winista.HtmlParser.dll放到lib 文件夾下,一般我們選擇是
6. DLL添加完成後,快捷鍵Ctrl + K 修改包包信息Id為Winista.HtmlParser,版本號為1.8.0
7. 信息修改和dll都添加完畢後,選擇File --> Save(或Ctrl + S)將文件進行保存,默認文件名為Id + 版本號.nupkg
8. 完成保存後如需要發布到網上,選擇File--> Publish...(或Ctrl + P)
默認的發布地址是官網,發布 Key需要到官網去註冊一個賬號,然後就可以得到,這裏不在復述,若無需發布直接關閉即可
ps:這裏沒有講述如何打包項目文件,一般情況下我們自己將項目文件編譯成DLL然後使用圖形化界面打包即可滿足需求,若實際工作需要高度集成完全自動化操作可自行去研究下官方文檔http://docs.nuget.org/
添加DLL默認會添加Lib文件夾,額外的菜單上還有很多.net文件夾,src等文件夾,這些文件夾只是對文件上的一個物理上的劃分而已,只是為了幫助我們做好文件分類,沒有其他的用途,dll文件可以隨便放置,不過為了規範還是建議按照通常習慣來放置。
三 :建設Nuget服務器
1. 新建Web站點,選擇 文件-->新建項目-->Asp.Net 空 Web應用程序
2. 選擇 工具-->Library Package Manager-->Package Manager Console 打開NuGet命令行控制臺
3. 在控制臺輸入Install-Package NuGet.Server (請保持Package source:官方源,即 Nuget offical package source,一般默認即為官方Package源)
4. 回車確認後開始下載並安裝NuGet.Server類庫及相關引用,並自動添加引用到項目
註:具體輸出根據版本不同會略有不同
自動添加的引用
5. 在控制臺輸入 Get-Package 可以看到剛剛安裝的類庫
6. 除添加類庫引用外,還自動添加了一些文件(關於這些文件及其作用本文不做探討,有興趣的可以自行研究下,都很簡單)
/App_Readme/
/App_Readme/Elmah.txt
/DataServices/
/DataServices/Packages.svc
/DataServices/Routes.cs
/Packages/
/Packages/Readme.txt
/Default.aspx
/favicon.ico
/packages.config
同時Web.config也被修改,添加了一些配置項
7. 至此NuGet.Server站點已經創建完畢,恩,你沒有看錯,就是這麽簡單,接下來部署到本地或IIS站點即可使用了
發布站點到IIS
1. 發布網站到本地
2. IIS裏面建立站點www.mynuget.com,主機頭www.mynuget.com,應用程序池為.Net4.0集成模式,目錄指向站點發布的目錄
3. 設置hosts 將www.mynuget.com執向本機
4. 設置好hosts後,重新打開瀏覽器輸入網址:http://www.mynuget.com/
5. 查看已經發布的類庫包 http://www.mynuget.com/nuget/Packages (可以把已經打好包的類庫放到網站下的Packages文件夾下即可)
添加本地站點到包包數據源
1. 選擇 工具-->Library Package Manager-->Package Manager Settings
2. 輸入名稱 MyNuGetServer及包包源地址 http://www.mynuget.com/nuget 點擊Add完成源添加
7. 查看剛剛添加的類庫源 工具-->Library Package Manager-->Manager NuGet Packages for Solution... 點擊剛添加的源MyNuGetServer可以看到我們放到站點下的類庫包,選中需要的包包點擊 Install完成安裝
8. 也可以在控制臺下安裝,將類庫源執行我們建立的源 MyNuGetServer,控制臺下輸入Install-Package Winista.HtmlParser完成安裝
現在我們已經成功的搭建了自己的NuGet服務器。
註意點:
1. NuGet包包是放置在站點根目錄下面的Packages文件夾下,如需要改變可以在配置文件packagesPath中進行設置,可以設置為相對目錄或者物理目錄
<appSettings> <!-- Change the path to the packages folder. Default is ~/Packages. This can be a virtual or physical path. --> <add key="packagesPath" value="" /> </appSettings>
2. 如何管理我們的包包,可以根據需要自行寫個上傳下載的文件管理功能,需要時上傳到Packages文件下,不需要了刪除即可,也可以像我一樣寫了個FTP服務,使用ftp上傳下載
3. 最好是為NuGet單獨建立個站點這樣管理著方便,若不方便建立獨立站點可以隨便找個現有的web站點,在裏面安裝NuGet.Server然後發布即可
使用NUget發布自己的dll(轉)