zoukankan      html  css  js  c++  java
  • 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="..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包的版本一定要配对!

  • 相关阅读:
    博客内容分类查重分析平台——大致任务划分(根据进度更改)
    大数据学习——MapReduce配置及java代码实现wordcount算法
    大数据学习——java代码实现对HDFS文件的read、append、write操作
    大数据学习——CentOS6.5在虚拟机下搭建HDFS
    大数据学习——CentOS6.5在虚拟机下实现ssh免秘钥登录
    大数据学习——CentOS6.5在虚拟机下安装mysql
    大数据学习——CentOS6.5在虚拟机下配置jdk
    大数据学习——CentOS6.5在虚拟机下安装配置ip网络
    MVC架构之二
    MVC架构
  • 原文地址:https://www.cnblogs.com/rhyheart/p/8418717.html
Copyright © 2011-2022 走看看