1. 程式人生 > >使用NUget發布自己的dll(轉)

使用NUget發布自己的dll(轉)

ica value ML physical esp image 包管理 service 混淆

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(轉)