专栏首页依乐祝Nuget多项目批量打包上传服务器的简明教程

Nuget多项目批量打包上传服务器的简明教程

本篇不会介绍Nuget是什么,如何打包上传Nuget包,怎么搭建私有Nuget服务器。这些问题园子里都有相应的文章分享,这里不做过多阐述。另外本文假设你已经下载了Nuget.exe,并且已经设置好了环境变量。什么?你还不会?那你先去百度下设置好后再来看这篇文章吧。nuget下载

实际项目中,我们可能一个解决方案下面会有N多个项目,每次发布这N多个项目都会使用统一的版本号一起发布到Nuget服务器。搜索了很久没找到一个好的方式,好在参考了abp vnext的打包方法实现了这个需求。因此分享下,希望对有需要的人有所帮助。

作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/12591174.html

首先看下图,每个脚本的作用我进行了注释,稍后我们再做进一步的详细阐述。在具体批量发布的时候,只需要先执行下pack.ps1脚本,然后再执行下push_packages.ps1脚本即可。当然还有一些参数需要根据你的项目来进行修改的。不过你不用担心,只需要按照下面步骤进行即可。

第一步,在common.ps1中配置我们的解决方案以及项目路径

我们把$solutions这个变量中的内容替换成我们的解决方案的相对路径。比如:解决方案在E:\abp\abp\framework这个路径,我们的脚本文件在E:\abp\abp\nupkg这个路径,那么我们就可以配置framework这个值就可以了。

第二步,pack.ps1这个脚本基本不需要修改,这里只是进行下代码的解释

  1. 这里首先引入第一步的common.ps1脚本文件(因为需要用到上面定义的变量)
  2. 循环遍历$solutions变量,找到所有的解决方案,并执行dotnet restore
  3. 这里才是打包的核心代码,遍历$projects并执行打包过程,然后把生成的nupkg文件拷贝到脚本所在的目录。

第三步,push_packages.ps1脚本文件打包上传到服务器

  1. 这里首先引入第一步的common.ps1脚本文件(因为需要用到上面定义的变量)
  2. 从根目录下获取common.props文件中获取对应的版本号,并推送对应版本号的nupkg到服务器 注意:common.props文件需要你自行添加,这里面可以定义csproject文件所需要的一些变量
  3. 循环common.ps1脚本中的$projects,并执行推送过程。
  4. 最后修改 下你自己的--api-key(Nuget管理的密钥)以及-s(包源,如果你是自己搭建的私有nuget服务器,则这里需要替换成私有nuget服务器地址)

第四步,执行上传操作

  1. 进入到你的上面三个脚本的目录,Shift+鼠标右键,选择在此处打开powershell打开powershell命令窗口
  2. 依次执行下.\pack.ps1push_packages.ps1脚本即可。
  3. 这里你在执行powershell脚本的时候可能会报如下的错误

这是由于操作系统默认禁止执行脚本,需要以管理员身份执行一次set-executionpolicy remotesigned然后输入y回车即可顺利执行。 Set-ExecutionPolicy 可更改 Windows PowerShell 执行策略的用户首选项。要在 Windows Vista、Windows Server 2008 和 Windows 的更高版本上运行此命令,必须使用"以管理员身份运行"选项启动 Windows PowerShell,

总结

本文参照abp vnext批量打包解决方案下面所有项目文件并上传到nuget服务器的方法实现了一个简单的Nuget多项目批量打包上传服务器的方法,希望对有需要的朋友有所帮助,当然,如果你有更好的方式也可以给我留言。感谢阅读。

下载地址

点这里下载:https://files.cnblogs.com/files/yilezhu/nupkg.zip

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入

    上篇文章我给大家讲解了ASP.NET Core的概念及为什么使用它,接着带着你一步一步的配置了.NET Core的开发环境并创建了一个ASP.NET Core的...

    依乐祝
  • .NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入

    上篇文章我给大家讲解了ASP.NET Core的概念及为什么使用它,接着带着你一步一步的配置了.NET Core的开发环境并创建了一个ASP.NET Core的...

    依乐祝
  • Ocelot简易教程(二)之快速开始2

    也可以通过命令 Install-Package Ocelot进行安装。方式随你喜欢。

    依乐祝
  • Java在游戏服务器开发中应用【面试+提高】

    Java在游戏服务器开发中的应用 随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。网络游戏开发是一个庞大的体系,总体来说是客户...

    Java帮帮
  • Java利用UDP协议建立广播组通信【附通信源码】

    之前和大家分享了使用TCP协议进行网络通信的过程,想了解的小伙伴可以看我的这篇文章《Java利用TCP协议实现客户端与服务器通信》,今天来和大家分享一下在Jav...

    灰小猿
  • 带你认识 flask linux 部署

    当提到“传统托管”时,意思是应用是手动或通过原始服务器机器上的脚本安装部署的。该过程涉及安装应用程序、其依赖项和生产规模的Web服务器,并配置系统以确保其安全。

    公众号---人生代码
  • 三分钟理解“建造者模式”——设计模式轻松掌握

    “建造者模式”生活中的例子: 肯德基做汉堡的过程都是有严格的规范的,不管是麦香鸡腿堡还是新奥尔良烤鸡腿堡,他们的制作步骤都是有严格规定,做汉堡的人既不能多做一步...

    大闲人柴毛毛
  • 30道高频JS手撕面试题

    Object.getPrototypeOf:用来获取某个实例对象的原型(内部[[prototype]]属性的值,包含proto属性)

    前端迷
  • Microsoft StreamInsight 构建物联网

    最近关于“物联网”(IoT) 的争论有很多,而且理由都很充分。 Ericsson 的 CEO Hans Vestberg 预测到 2020 年将有 500 亿台...

    张善友
  • 关于网络视频流媒体直播/点播服务流程,你要知道的全在这里了!(新手必看)

    网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看。一般来说,网络视频直...

    EasyNVR

扫码关注云+社区

领取腾讯云代金券