使用批处理脚本自动生成并上传NuGet包(操作方法)

  

你好大家好,我是TANZAME,我们又见面了。

  

NuGet是什么这里就不再重复啰嗦,园子里一搜一大把。今天要跟大家分享的是,在日常开发过程中如何统一管理我们的包,如何通过批处理脚本生成包并自动上传到NuGet。在实际项目开发过程中我们要上传自己的包,一般的步骤都是:NuGet规范=比;nuget包=比;nuget推动,一个包都要至少重复三个动作,如果有N个包那就要重复N * 3次,想想都不能忍,所以便有了今天的分享主题。

  

<强>

  

既然是统一管理,生成的包自然是放在同一个文件夹,而不是分散在各个.proj目录里。这里我们在解决方案所在目录新建一个目录,这样做的目的是方便蝙蝠脚本找到解决方案下面的子项目。比如我这里新建的是.nuget这个目录,需要注意的是如果目录名称有特殊字符的话不能直接右键新建,需要用命令提示符,直接在解决方案所在目录使用快捷键SHIFT +右键就能直接打开命令提示符,这样可以省去一大堆cd的操作。

  

使用批处理脚本自动生成并上传NuGet包(操作方法)

  

  

到NuGet官网下载命令行接口(CLI)。<代码> NuGet。exe>   

      <李>请访问nuget.org/downloads,并选择NuGet 3.3或更高版本(2.8.6与Mono不兼容)。始终建议使用最新版。若要将包发布到nuget.org,版本至少必须是4.1.0。   <李>每次下载都直接下载<代码> nuget。exe 文件。让浏览器将文件保存到选定文件夹。此文件不是安装程序,如果直接在浏览器中运行,就不会看到任何内容。   <李>将文件夹添加到<代码> nuget。exe>   
  

使用批处理脚本自动生成并上传NuGet包(操作方法)

  

  

  

.nuspec文件是包含包元数据的XML清单,此清单同时用于生成包以及为使用者提供信息。这个清单文件我们只需要生成一次,以后都不需要再重新生成. .净核心和使用sdk特性。净标准项目不需要.nuspec文件,如果是。NET核心和使用sdk特性。净标准项目则忽略此步骤。转到项目所在目录,SHIFT +右键调出命令提示符,输入nuget规范命令即可生成我们所需要的包元数据清单。

  

使用批处理脚本自动生成并上传NuGet包(操作方法)

  

  

将这个清单文件剪切到第一步新建的.nuget文件夹,剪切过去后项目下面就不会凭空多出一个文件,看着清爽多了。然后做一下调整填入我们自己项目的相关信息,比如像下面这样:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;包xmlns=" http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd "比;   & lt; metadata>   & lt; id> TZM.XFramework   & lt; version>版本& lt;美元/version>   & lt; title>标题& lt;美元/title>   & lt; authors>作者& lt;美元/authors>   & lt; owners>作者& lt;美元/owners>   & lt;许可类型=氨泶锸健痹赼pache - 2.0 & lt;/license>   & lt; projectUrl> https://github.com/TANZAME/TZM.XFramework</projectUrl>   & lt; iconUrl> http://go.microsoft.com/fwlink/& # 63; LinkID=386613 & lt;/iconUrl>   & lt; description>时代精神运动。XFramework是轻量级和高性能为。net的对象关系映射框架使用原始的实体框架api。;/description>   & lt; copyright>版权2019 & lt;/copyright>   & lt; tags>。净该数据库数据状态"置疑" O/RM ADO.NET   & lt;库类型=癵it”url=" https://github.com/TANZAME/TZM.XFramework "/比;   & lt;依赖/比;   & lt; frameworkAssemblies>   & lt; frameworkAssembly assemblyName=" System.Data "/比;   & lt; frameworkAssembly assemblyName=" System.ComponentModel.DataAnnotations "/比;   & lt; frameworkAssembly assemblyName=" System.Net.Http "/比;   & lt;/frameworkAssemblies>   & lt;/metadata>   & lt;/package>      

  

在第一步新建的文件夹里新建一个蝙蝠文件,重命名为包。蝙蝠,接下来编写我们的自动脚本。完整蝙蝠脚本戳这里,直接上代码片段。

使用批处理脚本自动生成并上传NuGet包(操作方法)