1. 程式人生 > >【.NET】NuGet釋出類庫包,輕鬆管理dll檔案

【.NET】NuGet釋出類庫包,輕鬆管理dll檔案

        大中型專案中總是有專門人員去開發和維護底層類庫的,封裝自己的類庫不僅可以提高程式碼的複用度,減少開發量,使程式碼更簡潔,還可以提高執行速度.但是,類庫方法的增加與修改導致使用該類庫的系統開發人員頻繁地刪除和新增引用.如果底層dll檔案過多,任何一次變動都將導致高錯誤率的修改!!為了方便管理dll檔案,我們使用NuGet動態更新的方式.

    如果您是類庫的開發者與維護者,請閱讀釋出篇.如果您是基於類庫的開發者,請閱讀使用篇.

釋出篇:

       (假設此時您已經開發好了一個類庫.)

       1.下載NuGet.exe,並將它放到和.csproj檔案在同一目錄下

.這個是打包用的好工具,它可將我們的工程檔案打包.

       2.NuGet官網註冊一個賬號,驗證後可獲得一個API Key.我們暫時管它叫my_api_key.

        然後設定API Key.

為防止出錯建議使用開始--VS2012--Visual Studio Tools--VS2012開發人員命令提示.

輸入以下命令設定NuGet API Key:    nuget setApiKey <my_api_key>

       

         3.設定您的AssemblyInfo.cs檔案中的屬性版本等,第一次就使用1.0.0.0.儲存設定並編譯整個專案

.

        4.在命令提示符下,進入.csproj檔案所在目錄,執行nuget spec 命令,將生成.nuspec檔案,比如我這裡生成了ITOO.Library.EFBase.nuspec.

        

          5.notepad++開啟該檔案,修改其中的某些值,沒用的可以刪掉.$$之間的可以不用管,會自動引用AssemblyInfo.cs中的設定值.如果您還不確定哪裡需要修改哪裡需要刪除,先往下做吧,待會提示警告,可以再修改.

          6.同樣在命令提示符下,進入.csproj的檔案目錄,輸入命令生成類庫包,以我的為例,命令如下:

Nuget packITOO.Library.EFBase.csproj

 .成功後生成.nupkg檔案,如我這裡生成了ITOO.Library.EFBase.1.0.0.0.nupkg

        

            7.最後釋出類庫包即可,輸入命令:nuget push ITOO.Library.EFBase.1.0.0.0.nupkg

會提示釋出成功.

         

使用篇:

       1.新建一個專案,右鍵選擇Manage NuGet Packages,搜尋上面已經成功釋出的包名,看我這裡

      

      安裝完成,您的專案已經自動添加了引用.

開發篇()

         8.類庫需要修改,修改完成後要去AssemblyInfo.cs中修改版本號,一切修改完成後編譯儲存.

然後生成類庫包併發布.即同樣還是命令提示符下,進入.csproj的檔案目錄,分別執行兩個命令:

       (1)生成類庫包,以我的為例:

       Nuget packITOO.Library.EFBase.csproj


      

           (2)釋出類庫包,以我的為例:

          nuget pushITOO.Library.EFBase1.0.0.1.nupkg

       

使用篇()

         2.在專案上右鍵選擇Manage NuGet Packages,在更新中可以看到我們要引用的類庫包,點選更新即可.

        

至此,這一小問題算是解決了,隨著開發不斷推進,問題肯定還會再出現,我們且行且解決.

最後提醒大家一下,已建立的類庫應該是一個單獨的解決方案.不然會出錯的.謝謝大家使用中遇到問題與我交流.

----------------------------------------------------------轉載請註明出處------------------------------------------------------------

相關推薦

.NETNuGet釋出,輕鬆管理dll檔案

        大中型專案中總是有專門人員去開發和維護底層類庫的,封裝自己的類庫不僅可以提高程式碼的複用度,減少開發量,使程式碼更簡潔,還可以提高執行速度.但是,類庫方法的增加與修改導致使用該類庫的系統開發人員頻繁地刪除和新增引用.如果底層dll檔案過多,任何一次變動都將導

NuGet 釋出,依賴項的問題

    最近在做新生入學的專案時,遇到nuget包釋出的問題,因為許可權系統,評教系統都會用到我們的WCF和Contract層的類庫,使用nuget將包釋出到網上,大家會自行下載。    但是在釋出的

NuGet釋出——使用及更新

    上篇部落格中介紹了NuGet釋出類庫,這還是不夠的,所以這篇部落格簡單介紹一下它的使用和更新。 使用篇: 1、開啟自己的Visual Studio,新建一個控制檯應用程式 2、右擊解決方

SpringBoot專案打成 jar 後關於配置檔案的外部化配置

  在未進行任何處理的情況下,SpringBoot 會預設使用專案中的 application.properties 或者 application.yml 來讀取專案所需配置。   我這裡只記錄幾種自己所用到的。 訪問命令列屬性   在預設的情況下, Sp

C++C語言標準以及標準標頭檔案

靜態連結庫(Static Link Library)——   Linux 下的 .a 和 Windows 下的 .lib。 ANSI C 標準共定義了 15 個頭檔案,稱為“C標準庫”,所有的編譯器都必須支援,如何正確並熟練的使用這些標準庫,可以反映出一個程式

Nuget釋出屬於自己的C#

前期必備 Visual Studio 2017 要安裝 nuget.exe CLI,從 nuget.org 官網下載,將 .exe 檔案儲存到合適的資料夾 申請 API 金鑰 登入你的 nuget.org 帳戶,或建立一個帳戶(如果你還沒有帳戶)。

如何在 Nuget 釋出自己的

我們可以將自己實現的類庫釋出到 Nuget 上,方便在未來開發應用程式時,對已有程式碼或結構進行復用。以下是在 Nuget 釋出自己類庫的一個簡單介紹。 1. 首先,我們需要到 nuget.org 註冊並 獲取 API key 2. 隨後,下載 Nuget 命令列工具,建

.Net淺談C#中的值型和引用

rem 理解 amp div net 親情 實例 函數 大小 在C#中,值類型和引用類型是相當重要的兩個概念,必須在設計類型的時候就決定類型實例的行為。如果在編寫代碼時不能理解引用類型和值類型的區別,那麽將會給代碼帶來不必要的異常。很多人就是因為沒有弄清楚這兩個概念從而在編

ubuntuwindows鏈接——怎樣從DLL導出C++

接口 文章 世紀 depend 多個 一起 關註 靜態 hole 原文鏈接(附代碼) 翻譯原文 介紹 DLL(動態鏈接庫)允許在一個獨立的模塊中封裝一系列功能函數,然後以一個顯式的C函數列表提供給外部使用者使用。在上個世紀80年代,當Dlls面世時,對於廣大開發者只有C語言

Config讀取自己的配置檔案,配置檔案的擴充套件

    我們在專案中一般都是使用統一的專案檔案配置,所有的配置和自定義的欄位都寫在一個web.config或者App.config檔案中。一般平時我們也沒有發現問題,確實這麼寫沒有問題,但是就是如果寫的多了就看著很臃腫。 並且假如你其他地方不是主專案的配置也寫在這裡,多了是不是很亂,有時候自己都不知道這個是

關於java.util.concurrent下的併發(atomic)

併發類包除了java.util.concurrent之外,還有java.util.concurrent.atomic和java.util.concurrent.lock.java.util.concurrent中主要是一些關於集合框架的併發實現,例如ConcurrentHas

.NET網站的打包與釋出

網站釋出1、開啟VS,右擊UI層,點擊發布Web應用2、選擇自定義,然後設定網站名,點選下一頁3、釋出方法選擇“檔案系統”,目標URL選擇自己網站想要放的位置,然後新建一個名為Website的資料夾,放在Website下4、接著在下一步的配置中選擇Release,然後下一步,接

MYSQL數據四種索引型的簡單使用--MYSQL組合索引“最左前綴”原則

不同的 lec rnn 修改表 dex 鄭州 blob 單列 提高 MYSQL數據庫索引類型包括普通索引,唯一索引,主鍵索引與組合索引,這裏對這些索引的做一些簡單描述: (1)普通索引 這是最基本的MySQL數據庫索引,它沒有任何限制。它有以下幾種創建方式: 創建索引

Oracle oracle數據的並發初步理解

數據交互 空閑 details cti 但是 art 網速慢 可見 就會 先從一個列子來說:我們經常聽到說某某網站的每天訪問用戶數有幾十,幾千,幾百萬甚至上千萬,同時在線用戶數有幾萬,幾十萬的。從這個列子我們來分析,數據庫並發的概念。首先,這兒有兩個名詞,一個是每天訪問的用

.Netc# 讓double保留兩位小數

con orm tr1 ima 一個 dbd for tin git 1、Math.Round(0.333333,2);//按照四舍五入的國際標準2、 double dbdata=0.335333; string str1=String.Format("{0:F

TomcatTomcat的加載機制

圖片 -a content 部署 編譯 img webapp tro clas 在Tomcat中主要有以下幾種類加載器:(圖片來自網絡) tomcat啟動時,會創建幾種類加載器: 1 Bootstrap 引導類加載器 加載JVM啟動所需的類,以及標準擴展類,位於jre/

thinkPHP5 註冊

新增 params load 重新定義 esp word pan pre 系統 tp5的類庫包註冊分為自動註冊和手動註冊 自動註冊 我們只需要把自己的類庫包目錄放入EXTEND_PATH目錄(默認為extend,可配置),就可以自動註冊對應的命名空間,例如: 我們在exte

.NetNet開發

cati 管理員 txt election oid com pmod 限制 data 博客裏的好多文章都是本人看著比較好,就轉過來的,好少自己親自去寫點什麽,也很少把自己學的一點心得於大家分享,今天特別想聊一下,關於本人做Net開發時的那段回憶! 一、關於知識的回憶 還記

DB2數據函數大全

區號 big index 大整數 第一個 err lower int 指定時間 DB2 內置的函數真的是很多,要精通每個函數幾乎是不可能的,所以本文並不打算介紹每個函數的具體用法,而是提供一個概覽,讓您了解每個函數的功能,這樣,當你感覺你需要某些功能的函數時,再學習它們的具

Pythonpython動態

引用變量 區分 如何工作 回收 new images 如何 空間 簡單的 在python中,省去了變量聲明的過程,在引用變量時,往往一個簡單的賦值語句就同時完成了,聲明變量類型,變量定義和關聯的過程,那麽python的變量到底是怎樣完成定義的呢? 動態類型