时间:2021-05-23
Hello 大家好,我是TANZAME,我们又见面了。
NuGet是什么这里就不再重复啰嗦,园子里一搜一大把。今天要跟大家分享的是,在日常开发过程中如何统一管理我们的包,如何通过批处理脚本生成包并自动上传到 NuGet。在实际项目开发过程中我们要上传自己的包,一般的步骤都是:nuget spec => nuget pack => nuget push,一个包都要至少重复三个动作,如果有 N个包那就要重复 N*3次,想想都不能忍,所以便有了今天的分享主题。
生成目录
既然是统一管理,生成的包自然是放在同一个文件夹,而不是分散在各个 .proj目录里。这里我们在解决方案所在目录新建一个目录,这样做的目的是方便 bat脚本找到解决方案下面的子项目。比如我这里新建的是 .nuget这个目录,需要注意的是如果目录名称有特殊字符的话不能直接右键新建,需要用命令提示符,直接在解决方案所在目录使用快捷键 SHIFT +右键就能直接打开命令提示符,这样可以省去一大堆 cd的操作。
下载 NuGet
到 NuGet 官网下载命令行接口(CLI)。nuget.exe提供了完整的 nuget 功能, 可用于安装、创建、发布和管理包, 而无需对项目文件进行任何更改。
生成清单
.nuspec文件是包含包元数据的 XML 清单, 此清单同时用于生成包以及为使用者提供信息。这个清单文件我们只需要生成一次,以后都不需要再重新生成。.net Core 和使用sdk 特性.NET Standard 项目不需要 .nuspec 文件,如果是.net Core 和使用sdk 特性.NET Standard 项目则忽略此步骤。转到项目所在目录,SHIFT +右键调出命令提示符,输入 nuget spec命令即可生成我们所需要的包元数据清单。
将这个清单文件剪切到第一步新建的 .nuget文件夹,剪切过去后项目下面就不会凭空多出一个文件,看着清爽多了。然后做一下调整填入我们自己项目的相关信息, 比如像下面这样:
<?xml version="1.0" encoding="utf-8"?><package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> <metadata> <id>TZM.XFramework</id> <version>$version$</version> <title>$title$</title> <authors>$author$</authors> <owners>$author$</owners> <license type="expression">Apache-2.0</license> <projectUrl>https://github.com/TANZAME/TZM.XFramework</projectUrl> <iconUrl>http://go.microsoft.com/fwlink/?LinkID=386613</iconUrl> <description>TZM.XFramework is a lightweight and high performance object-relational mapper for .NET use the original Entity Framework api.</description> <copyright>Copyright 2019</copyright> <tags>.NET SqlServer MSSQL Database Data O/RM ADO.NET</tags> <repository type="git" url="https://github.com/TANZAME/TZM.XFramework" /> <dependencies /> <frameworkAssemblies> <frameworkAssembly assemblyName="System.Data"/> <frameworkAssembly assemblyName="System.ComponentModel.DataAnnotations"/> <frameworkAssembly assemblyName="System.Net.Http"/> </frameworkAssemblies> </metadata></package>编写脚本
在第一步新建的文件夹里新建一个 bat文件,重命名为 package.bat,接下来编写我们的自动脚本。完整 bat脚本戳这里,直接上代码片段。
最后贴一张最终运行的效果图:
总结
通过这个脚本,我们可以在一个文件夹里统一管理我们的包,做到一键生成、上传同时保持项目文件的清爽,嗯简直不要太方便 ~..~
参考资料:https://docs.microsoft.com/zh-cn/nuget/
以上所述是小编给大家介绍的使用批处理脚本自动生成并上传NuGet包,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
批处理系统,又名批处理操作系统。批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。 这种采用批量处理作业技术的操作系统称为批处理
一、批处理释义:批处理(Batch),也称为批处理脚本。它是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,应用于DOS和Windows系统中。批处理文
本文实例讲述了php实现在新浪云中使用imagick生成缩略图并上传的方法。分享给大家供大家参考,具体如下:imagick是一款php的图像处理插件了我们可以使
WindowsXP启动脚本(startupscripts)是计算机在登录屏幕出现之前运行的批处理文件,它的功能类似于Windows9x和dos中的自动执行批处理
Call从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用Call,它将不会在命令行