本篇不会介绍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

Nuget多项目批量打包上传服务器的简明教程的更多相关文章

  1. [Xcode 实际操作]九、实用进阶-(32)项目的打包上传和提交审核以及下架处理

    目录:[Swift]Xcode实际操作 本文将演示如何将一个应用程序进行打包上传,并提交审核以及下架处理. 点击项目[DemoApp]->[Build Settings]编译设置->[Pr ...

  2. 如何把项目通过git上传之github完整教程

    作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心.Github是基于git实现的代码托管,很多程序员在上面托管自己的开源项目,我使用Github也 ...

  3. java打包上传服务器的一些命令

    Maven下package打包成jar包和war包,都在target目录下 其中War包扔在tomcat的webapps目录下.随tomcat启动自行启动 运行jar包命令. nohup java - ...

  4. XCode7,打包上传的一些警告,及参考处理方法

    1.ERROR ITMS-90046 /90085: "Invalid Code Signing Entitlements. Your application bundle's signat ...

  5. jenkins+svn 打包部署上传服务器并正常运行项目,从安装到使用

    以前写过一个版本,jenkins打包部署的全果然,然后...没保存,现在重新写一个版本从按照开始. 项目平时部署情况,svn拉代码,开发打包后进行给测试,测试上传到跳板机,杀掉以前项目进程,上传到服务 ...

  6. 封装WebAPI客户端,附赠Nuget打包上传VS拓展工具

    一.前言 上篇< WebAPI使用多个xml文件生成帮助文档 >有提到为什么会出现基于多个xml文件生成帮助文档的解决方案,因为定义的模型可能的用处有: 1:单元测试 2:其他项目引用(可 ...

  7. 【NuGet】打包上传一条龙服务

    昨天写了搭建自己的NuGet程序源,但是领导不满意之前的打包上传~~,无奈只能去爬点思路了,这里参考的其他博文,但是还是想写下来. 第一步.建立一个批处理文件 在文件里,有三条命令: nuget pa ...

  8. 在pom.xml中使用distributionManagement将项目打包上传到nexus私服

    本文介绍 如何在pom.xml中使用distributionManagement将项目打包上传到nexus私服 1.pom.xml文件添加distributionManagement节点 <!- ...

  9. 基于.NetCore开发博客项目 StarBlog - (18) 实现本地Typora文章打包上传

    前言 九月太忙,只更新了三篇文章,本来这个功能是从九月初就开始做的,结果一直拖到现在国庆假期才有时间完善并且写文章~ 之前我更新了几篇关于 Python 的文章,有朋友留言问是不是不更新 .Net 了 ...

随机推荐

  1. WiFi产生电磁辐射或让人想去自杀

    随着互联网在生活中的地位越来越重要,WiFi作为一种无线连接方式给了用户极大的便捷,然而有一部分科学家提出WiFi产生的电磁反应会对人的健康受到影响.面对这种说法,我们一直以为是专家在危言耸听,但是如 ...

  2. NERDTree快捷键

    切换工作台和目录 ctrl + w + h 光标 focus 左侧树形目录ctrl + w + l 光标 focus 右侧文件显示窗口ctrl + w + w 光标自动在左右侧窗口切换ctrl + w ...

  3. Emacs key bindings for vim users

    Emacs key bindings for vim users | Scarletsky 盒子 盒子 博客 分类 标签 关于 RSS 搜索 文章目录 简介 Emacs 是一个文本编辑器,号称是伪装成 ...

  4. Ubuntu16.04如何安装bazel?

    官方文档:https://docs.bazel.build/versions/master/install-ubuntu.html 我没有使用二进制的安装方法,以下是二进制的安装方法: Install ...

  5. 简单易懂的Servlet路径问题

    关于servlet路径,我看了一下网上别人的博客园,发现都有一个通病,讲的太专业了,又抓不住关键部分,往往看一眼就不想看第二眼.所以我特地准备了初学者所通识的servlet路径问题. 1.标识符 /j ...

  6. 怎么用一行HTML代码搭建一个谷歌镜像?

    <iframe src="google.com"></iframe>

  7. Vuex的理解以及它的辅助函数

    理解:vue中的“单向数据流”,这里借用官网的图示: Vue是单向数据流,v-model只是语法糖而已.单向数据流就是:数据总是[向下传递]从父级组件传递给子组件,只能单向绑定.子组件内部不能直接修改 ...

  8. 有关vue中用element ui 中的from表单提交json格式总是有冒号的问题解决办法

    因为后台要求要传递JSON格式的数据给他,然后我转了之后总是多了冒号,后来又看了自己的报错,原来是报了404错误,说明路径找不到, 数据格式 后来发现怎么都不行了,然后突然查看了报错报的是404,说明 ...

  9. flask 对于邮件url进行一个加密防止爆破

    注册表单 from app.modles import User class registerForm(FlaskForm): nicheng = StringField('昵称',validator ...

  10. 《深入理解 Java 虚拟机》读书笔记:虚拟机字节码执行引擎

    正文 执行引擎是 Java 虚拟机最核心的组成部分之一.在不同的虚拟机实现里,执行引擎在执行 Java 代码时可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也 ...