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

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

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

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

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

image-20200329100147560

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

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

image-20200329101445573

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

  1. 这里首先引入第一步的common.ps1脚本文件(因为需要用到上面定义的变量)

  2. 循环遍历$solutions变量,找到所有的解决方案,并执行dotnet restore

  3. 这里才是打包的核心代码,遍历$projects并执行打包过程,然后把生成的nupkg文件拷贝到脚本所在的目录。

image-20200329102000346

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

  1. 这里首先引入第一步的common.ps1脚本文件(因为需要用到上面定义的变量)

  2. 从根目录下获取common.props文件中获取对应的版本号,并推送对应版本号的nupkg到服务器

    注意:common.props文件需要你自行添加,这里面可以定义csproject文件所需要的一些变量

  3. 循环common.ps1脚本中的$projects,并执行推送过程。

  4. 最后修改 下你自己的--api-key(Nuget管理的密钥)以及-s(包源,如果你是自己搭建的私有nuget服务器,则这里需要替换成私有nuget服务器地址)

image-20200329102832869

第四步,执行上传操作

  1. 进入到你的上面三个脚本的目录,Shift+鼠标右键,选择在此处打开powershell打开powershell命令窗口

  2. 依次执行下.\pack.ps1push_packages.ps1脚本即可。

  3. 这里你在执行powershell脚本的时候可能会报如下的错误

    image-20200329103723580

    这是由于操作系统默认禁止执行脚本,需要以管理员身份执行一次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

往期精彩回顾

【推荐】.NET Core开发实战视频课程 ★★★

.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

【.NET Core微服务实战-统一身份认证】开篇及目录索引

Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南)

.NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

10个小技巧助您写出高性能的ASP.NET Core代码

用abp vNext快速开发Quartz.NET定时任务管理界面

现身说法:实际业务出发分析百亿数据量下的多表查询优化

关于C#异步编程你应该了解的几点建议

C#异步编程看这篇就够了

给我好看 
您看此文用  · 秒,转发只需1秒呦~
好看你就点点我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ struct结构体 实现搜索二叉树(BST)

代码如下: #include <iostream> using namespace std;struct BSTNode {double v 0.0;BSTNode *lc nullptr;BSTNode *rc nullptr;BSTNode *par nullptr; };void inorder_tree(BSTNode *t) {if (t ! nullptr) {inorder_tree(t->lc);cout << t->v <<…

如何用 Blazor 实现 Ant Design 组件库(二)

前言前两周&#xff0c;我发表了上一篇文章《如何用 Blazor 实现 Ant Design 组件库&#xff1f;》&#xff0c;得到了很多朋友的响应&#xff0c;也有很多朋友加入我的钉钉群&#xff0c;并收听了我在第二天的直播。这次直播是我人生第一次做直播&#xff0c;以至于没做什么准…

计算机蠕虫是一个程序或程序系列,它采取截取口令并试图在系统中,计算机蠕虫病毒是一个程序或程序系列,它采取截取口令并试图在系统中做非法动作的方式直接攻击计算机。...

采用FCA条件时&#xff0c;计算机蠕计算机卖方应负的责任是( )某资本家制衣厂内&#xff0c;虫病程序工人一个月工作30天&#xff0c;虫病程序其月工资为1500元。据工厂统计&#xff0c;每天每位工人能生产5件衣服&#xff0c;每件价值100元&#xff0c;每件衣服生产时产生的费…

.NET 5 中的正则引擎性能改进(翻译)

前言System.Text.RegularExpressions 命名空间已经在 .NET 中使用了多年&#xff0c;一直追溯到 .NET Framework 1.1。它在 .NET 实施本身的数百个位置中使用&#xff0c;并且直接被成千上万个应用程序使用。在所有这些方面&#xff0c;它也是 CPU 消耗的重要来源。但是&#x…

以个人身份加入.NET基金会

.NET 走向开源&#xff0c;MIT许可协议。微软为了推动.NET开源社区的发展&#xff0c;2014年联合社区成立了.NET基金会。一年前 .NET 基金会完成第一次全面改选&#xff0c;2014年 .NET基金会的创始成员中有六位创始人&#xff0c;均非微软公司员工&#xff0c;随着微软的收购动…

计算机连接拒绝访问,Win10系统下Windows无法连接到打印机,拒绝访问的解决办法...

我们在办公的时候&#xff0c;经常会使用打印机共享的功能&#xff0c;近期有一位Win10用户在共享打印机的时候&#xff0c;系统提示了“Windows无法连接到打印机&#xff0c;拒绝访问”的错误。原因是用户和组没有everyone&#xff0c;才会导致打印机拒绝访问的情况。那么我们…

十问十答 BSD 许可证

BSD 许可证或原始 BSD 许可证&#xff08;the original BSD License&#xff09;及其两个变体——修改的 BSD 许可证&#xff08;又称 The 3-clause BSD License&#xff09;和简化的 BSD 许可证/FreeBSD 许可证&#xff08;又称 BSD 2-Clause "Simplified" License&…

C++ class实现单向循环链表(完整代码)

注意: 写Delete_all要稍微注意一下&#xff0c;先判断tail是否为空&#xff0c;只有不为空时才能拿某个指针指向其next域 代码如下: #include <iostream> using namespace std; typedef int ElemType; #define NO 0class Node {friend class LinkList;public:Node(): …

这一次,终于弄懂了协变和逆变

一、前言刘大胖决定向他的师傅灯笼法师请教什么是协变和逆变。刘大胖&#xff1a;师傅&#xff0c;最近我在学习泛型接口的时候看到了协变和逆变&#xff0c;翻了很多资料&#xff0c;可还是不能完全弄懂。灯笼法师&#xff1a;阿胖&#xff0c;你不要被这些概念弄混&#xff0…

大一计算机专业学期计划范文,大一学习计划范文4篇

大一学习计划范文4篇时间的脚步是无声的&#xff0c;它在不经意间流逝&#xff0c;我们又将迎来新的学习任务&#xff0c;写一份学习计划&#xff0c;为接下来的学习做准备吧&#xff01;但是学习计划要写什么内容才是正确的呢&#xff1f;以下是小编精心整理的大一学习计划范文…

C++ class实现双向循环链表(完整代码)

写Delete_all的时候注意一下就好了&#xff0c;先判断空白头结点是不是为NULL 代码如下: #include <iostream> using namespace std; typedef int ElemType; #define NO 0class Node {friend class LinkList;public:Node(): next(NULL), prior(NULL) {};private:ElemTy…

5分钟看懂微服务架构下的Consul 特性及搭建

一、前言虽然说牛逼的公司都有那么几个牛逼的运维团队&#xff0c;牛逼的运维团队都有着神秘黑科技般敲代码的姿势&#xff1b;本人虽然不是一个运维工程师&#xff0c;但是自己比较爱倒腾这些东西&#xff0c;会那么一点点运维姿势&#xff0c;虽然不算专业&#xff0c;但是还…

win7 计算机定时关机脚本,win7定时关机设置及命令

电脑定时关机是一个常用的功能&#xff0c;定时关机的小软件也有不少&#xff0c;但 Win7 也为我们提供了定时关机的功能&#xff0c;额外下载软件不如就地取材。win7定时关机可通过两种方式实现&#xff0c;一种是创建计划任务&#xff0c;另一种是用win7定时关机命令 shutdow…

ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记

任务9&#xff1a;客户端集成IdentityServer新建 API 项目dotnet new webapi --name ClientCredentialApi控制器添加验证using Microsoft.AspNetCore.Authorization;namespace ClientCredentialApi.Controllers {[ApiController][Route("[controller]")][Authorize]p…

C++ class实现顺序栈(完整代码)

代码如下: #include <iostream> using namespace std; typedef int ElemType;class SeqStack {public:SeqStack(int stacksize 100) {base new ElemType[stacksize];top base;size stacksize;};~SeqStack() {delete[] base;top NULL;base NULL;};int Empty_Stack(…

EF Core 数据变更自动审计设计

EF Core 数据变更自动审计设计Intro有的时候我们需要知道每个数据表的变更记录以便做一些数据审计&#xff0c;数据恢复以及数据同步等之类的事情&#xff0c; EF 自带了对象追踪&#xff0c;使得我们可以很方便的做一些审计工作&#xff0c;每次变更发生了什么变化都变得很清晰…

C++ class实现链栈(完整代码)

代码如下: #include <iostream> using namespace std; typedef int ElemType;class StackNode {friend class LinkStack;private:ElemType data;StackNode *next;StackNode(): next(NULL) {}; };class LinkStack {public:LinkStack(): top(NULL) {};~LinkStack() {Stack…

海外服务器维护,海外服务器运行不正常的原因是什么?

要开开展海外贸易业务&#xff0c;您需要选择一个由于客户操作错误&#xff0c;服务器无法正常工作。实际上&#xff0c;在使用服务器时&#xff0c;许多小型企业客户不需要定期维护服务器&#xff0c;只需要建立一个对服务器技能有一点了解的人&#xff0c;而他们需要运行服务…

使用Docker-Compose搭建高可用redis哨兵集群

头脑风暴出于学习目的&#xff0c;您可以很轻松地在docker环境下运行redis的单个实例&#xff0c;但是如果您需要在生产环境中运行它&#xff0c;那么必须将Redis部署为HA(High Avaliable)模式。Redis Sentinel为Redis提供高可用性&#xff0c;这意味着使用Sentinel可以创建Red…

C++ class实现顺序队列(完整代码)

代码如下: #include <iostream> using namespace std; typedef int ElemType;class SeqQueue {public:SeqQueue(int Queuesize 100) {base new ElemType[Queuesize];front 0;rear 0;size Queuesize;};~SeqQueue() {delete[] base;};int Empty_Queue();int En_Queue…