流程自动化RPA,Power Automate Desktop系列 - DotNet Core打包并发布Nuget Package
一、背景
DotNet Core通常基于Nuget来实现包管理,如果你想要把自己的实现共享给其他人,通常我们需要把本地项目打包好,然后发布到对应的Nuget Server上,以便于其他人可以查找、安装、升级。

二、创建流任务
创建名为打包并发布Nuget Package的流任务。
三、添加主流程
3.1 直接就用主流程,或者新建名为PackAndPublishNuget的子流程
0. 概览

1. 显示选择文件夹对话框,描述为"请选择要打包的项目目录",弹窗交互选择需要打包的项目文件夹,存储结果在变量PackageProjectDirPath中。

如果常用位置,可以设置初始文件夹位置,以免每次都选来选去。
2. 执行PowerShell脚本来执行打包,执行指定项目打包命令,这个动作我们命名为PackTargetProject
cd %PackageProjectDirPath%
dotnet pack -c Release

这里切换到项目文件夹目录,然后执行DotNet CLI自带的命令来执行dotnet pack打包动作,其中-c Release就是指定打Release模式的包。
3. 设置变量,变量名为PackageFileDir,用来组装Nuget包所在目录。
该路径应该是组装了PackageProjectDirPath和生成的Nuget包的项目目录路径。
%PackageProjectDirPath%\bin\Release

4. 获取文件夹中的文件,从PackageFileDir中提取目录中的最新Nuget包
我们需要通过获取文件夹中的文件这个操作针对PackageFileDir目录,提取其中*.nupkg格式的文件,得到一个名为NugetPackageFiles的变量,并且按文件的上次修改时间进行倒序排序,以便后续筛选,因为通常我们新打的包的修改日期是最新的。
%PackageFileDir%
*.nupkg

5. 设置变量,变量名为PackageFilePath,用来提取最新一个Nuget包路径。
我们只需要提取列表的第一个元素就可以得到PackageFilePath变量。
%NugetPackageFiles[0]%

6. 获取文件路径部分,从PackageFilePath提取带后缀文件名,存储结果在PakcageFileName。
在最终的Nuget命令中我们会需要Nuget包带后缀文件名这么一个东西,那么我们可以通过获取文件路径部分操作来得到PakcageFileName变量。
%PackageFilePath%

7. 设置变量,变量名为NugetServerAuthKey,用来存储Nuget服务器的授权密钥。

8. 设置变量,变量名为NugetServerUrl,用来存储Nuget服务器的网络地址。

9. 运行PowerShell脚本,来执行最终的Nuget包上传命令,这个动作我们命名为UploadPackageFile
cd %PackageFileDir%
dotnet nuget push %PakcageFileName% --api-key %NugetServerAuthKey% --source %NugetServerUrl%
先切换到PackageFileDir目录,然后执行DotNet CLI自带的命令来执行dotnet nuget push推送动作,推送到我们指定的Nuget服务节点即可。

这里注意,如果你推送的Nuget包版本服务器已存在,它也会执行成功哈。
测试验证



Power Automate Desktop/RPA 爱好者交流群

流程自动化RPA,Power Automate Desktop系列 - DotNet Core打包并发布Nuget Package的更多相关文章
- 流程自动化RPA,Power Automate Desktop系列 - 不讲武德的Windows10内置应用
简介 Power Automate Desktop 扩展Power Automate中的现有机器人流程自动化(RPA)功能,并使您能够自动化所有重复的桌面流程. 使用预生成的拖放操作或记录您自己的桌面 ...
- 流程自动化RPA,Power Automate Desktop系列 - 创建WPF程序安装包及升级包
一.背景 之前写过的几个WPF小工具,每次发布都需要给它打安装包和升级包,涉及到一些系列繁琐的手工操作,有了Power Automate Desktop,于是便寻思着能不能做成一个自动化的流来使用. ...
- 流程自动化RPA,Power Automate Desktop系列 - 批量备份Git仓库做好灾备
一.背景 打个比如,你在Github上的代码库需要批量的定时备案到本地的Gitlab上,以便Github不能访问时,可以继续编写,这时候我们可以基于Power Automate Desktop来实现一 ...
- 流程自动化RPA,Power Automate Desktop系列 - 发布文档中心
一.背景 内网中有一个基于VuePress搭建的静态文档中心,但是每次修改后都需要重新Build一次才行,之前都是手动执行命令,现在可以基于Power Automate Desktop来创建任务了. ...
- 流程自动化RPA,Power Automate Desktop系列 - 构建VuePress文档中心脚手架
一.背景 笔者曾基于VuePress搭建过一个文档中心,但是在实现在线管理功能之前,很多时候,新建文档需要手动处理很多数据,看有没有可能实现一个脚手架来处理这些问题,所谓脚手架,就是进行文档初始化的一 ...
- dotnet core 通过 frp 发布自己的网站
很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站 通过 frp 的方式,可以解决自己的服务器性能太差 ...
- dotnet core 跨平台编译发布
vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish ...
- dotnet core瘦身发布
需要安装nuget包Microsoft.Packaging.Tools.Trimming然后利用如下命令发布dotnet publish -r win10-x64 -c release --self- ...
- 使用 dotnet CLI 来打包和发布 .NET Core nuget package
原文链接:使用 dotnet CLI 来打包和发布 .NET Core nuget package 如何使用 visual studio 2015/2017 打包和发布 Nuget package, ...
随机推荐
- [bug] C++:[Error] name lookup of 'i' changed for ISO '
错误原因:变量i只在for循环中可见,若在循环外使用需要单独定义 1 #include <iostream> 2 using namespace std; 3 4 int main(){ ...
- 基于LNMP架构搭建wordpress个人博客
搭建过程 注意防火墙和selinux的影响可以先关闭. 一.安装nginx # 1.更改nginx源安装nginx [root@web01 ~]# vi /etc/yum.repos.d/nginx. ...
- STM32F4-IAP学习笔记--(转)
花了断断续续两天时间在STM32上面写了一个IAP(In Application Programing)Boot,期间多多少少还是遇到的了不少问题.现在就花点时间把这两天写的东西整理一下,就当是学习笔 ...
- Spring的基础配置,以及注解
常用依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webm ...
- Linux(CentOS7)下二进制安装MySQL5.7.26
记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...
- 5G通讯与芯片
5G通讯与芯片 美国商务部可能接近达成一项新的规则,允许美国公司与华为重启谈判,在共同制定下一代通信技术5G标准方面进行合作. 华为美国首席安全官安迪·珀迪(Andy Purdy)向第一财经记者独家回 ...
- 全景分割:CVPR2019论文解析
全景分割:CVPR2019论文解析 Panoptic Segmentation 论文链接: http://openaccess.thecvf.com/content_CVPR_2019/papers/ ...
- 中国人工智能AI框架自主研发
中国人工智能AI框架自主研发 中国AI界争相构建AI开源框架的背后,技术和业务层面的考量因素当然重要,但也不应忽视国家层面的政策支持.对于AI基础设施的建设,中国政府在<新一代人工智能发展规划& ...
- 痞子衡嵌入式:嵌入式里通用微秒(microseconds)计时函数框架设计与实现
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里通用微秒(microseconds)计时函数框架设计与实现. 在嵌入式软件开发里,计时可以说是非常基础的功能模块了,其应用也非常 ...
- robotframework常用关键字
robotframework关键字 可以将关键字看作是处理数据的方法.robotframework的关键字和测试数据组成了测试用例. robotframework关键字包括系统关键字和用户关键字.用户 ...