Nuget包制作最佳解決方案


  最近研究ABP框架,下載其全套源碼,想“據為己有”,這樣添加功能或者修改源碼的話就非常方便了,否則搭建項目直接用其官方的Nuget肯定是做不到的。

  源碼下好了,取其精華之處,編譯完美運行,然后問題就來了,這么多類庫,如何將他們全部做成Nuget包呢,之前從主管那得到了個制作Nuget包的神器(NuGetPackageExplorer.application),然而制作起來相當費勁,每次都要打開該軟件,一個一個dll的添加,還需要配置相當多的引用,引用版本弄不好就弄錯了,然后整個Nuget就GameOver了,升級起來也相當費勁。

  最近做項目,又從主管那得知了制作的新招,采用文件配置方式制作Nuget,那效率杠杠的,廢話不多說,開始吧:

  一、安裝(NuGetPackageExplorer.application

    這個肯定是要的,因為Nuget包就是用這個工具來生成的,只是我們把其操作方式改成了文本配置。

  二、在VS解決方案里創建.nuget文件夾

    其實此文件夾名稱是可以隨意,但是為了區分就給它命名為.nuget咯。

  三、在.nuget文件夾里面創建.xml格式的文件,接着將此文件后綴改成.nuspec

    為何不直接創建一個以.nuspec文本文件呢?那是因為該文件本身就是xml格式,如果采用文本格式,那么VS就直接將其內容識別成普通的問題咯,更不會有xml相關的提示。

    新增的配置文件如下:

    

    四、添加配置內容

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>Drea.AutoMapper</id><!--Nuget包名稱-->
    <version>1.0.0</version><!--Nuget包版本-->
    <title>Drea.AutoMapper</title><!--Nuget包顯示名稱-->
    <authors>Drea</authors><!--作者-->
    <owners>Drea</owners><!--所有者-->
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <iconUrl>http://drea.cc/favicon.ico</iconUrl>
    <description> 1.0.0 原始版本<!--描述(升級記錄)-->
    </description>
    <summary>AutoMapper自動映射</summary><!--簡介-->
    <copyright>©2018 Drea</copyright><!--版權-->
    <language>zh-CN</language><!--語言-->
    <tags>asp.net;asp.net mvc;boilerplate;application framework;web framework;framework;domain driven design;automapper;object mapper</tags><!--標簽-->
    <dependencies><!--項目依賴-->
      <group targetFramework=".NETStandard2.0">
        <dependency id="Drea.Core" version="1.0.0" />
        <dependency id="AutoMapper" version="6.2.1" />
      </group>
    </dependencies>
  </metadata>
  <files>
    <file src="..\src\Abp.AutoMapper\bin\Debug\netstandard2.0\Abp.AutoMapper.dll" target="lib\netstandard2.0\Abp.AutoMapper.dll" /><!--目標Dll所在路徑-->
  </files>
</package>

  其他都好說,但是項目依賴如果有N多個呢,難道要一個一個去找,然后加進來?其實大可不必,VS項目本身的配置文件里面都已經配好了,我們只需要打開項目配置文件,復制粘貼即可。

  

  

   

   

  注意:PackageRefreshce引用可能位於多個ItemGroup,都要加進去,對於系統引用(.NetFramework)無需加入(自測沒有問題,但是不保證不出問題)

  五、進入.nuget所在目錄,打開.nuspec文件,Ctrl+S創建並保存Nuget包

  

  

  

    至此大功告成,一定要注意以下幾點:

  1、項目引用的Nuget包一定要都配上去!

  2、系統引用可以無需配置!

  3、Nuget包的版本一定要配對!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM