流程自动化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包版本服务器已存在,它也会执行成功哈。