• Nuget包制作最佳解决方案


    https://www.cnblogs.com/drea/p/8418717.html

    最近研究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="..srcAbp.AutoMapperinDebug
    etstandard2.0Abp.AutoMapper.dll" target="lib
    etstandard2.0Abp.AutoMapper.dll" /><!--目标Dll所在路径-->
      </files>
    </package>
    复制代码

      其他都好说,但是项目依赖如果有N多个呢,难道要一个一个去找,然后加进来?其实大可不必,VS项目本身的配置文件里面都已经配好了,我们只需要打开项目配置文件,复制粘贴即可。

      

      

       

       

      注意:PackageRefreshce引用可能位于多个ItemGroup,都要加进去,对于系统引用(.NetFramework)无需加入(自测没有问题,但是不保证不出问题)

      五、进入.nuget所在目录,打开.nuspec文件,Ctrl+S创建并保存Nuget包

      

      

      

        至此大功告成,一定要注意以下几点:

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

      2、系统引用可以无需配置!

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

  • 相关阅读:
    把握人生12种财富:让商人更自信
    英语谚语的汉译
    心胸有多大,事业才可能有多大
    想成领袖?先瞄准老板身边的位置
    绝对挑战:如何来提高自己的影响力?
    送给创业的朋友:落入坑洞的猎人
    跨越危机,塑造完美的职业生涯(三)
    如果一个男人真的爱你
    跨越危机,塑造完美的职业生涯(一)
    来自最伟大推销员的成功金句
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/9198512.html
Copyright © 2020-2023  润新知