流程自动化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 爱好者交流群

image

posted @ 2021-04-02 11:48  TaylorShi  阅读(651)  评论(2编辑  收藏  举报