openRPA开源项目源码编译

news/2024/5/20 8:04:02 标签: rpa

最近接触到了一个新的领域——RPA,RPA全称Robotic Process Automation,中文名为机器人流程自动化。RPA可以视作一个数字机器人,它可以通过程序来模拟人与软件系统的交互过程,代替人工将大量重复、有规则的计算机操作自动化,以非侵入式(即不对原来的程序和系统进行二次开发)部署,打通不同系统之间的数据孤岛。RPA目前已成为一项关键技术,它在提升工作效率和降低成本方面扮演着重要角色。通过减少业务流程中的错误、处理时间、开支以及不必要的操作,我们能够显著优化系统的工作流。
想要从零开始开发一个RPA需要不仅需要丰富的技术知识积累而且需要大量的人力资源,因此打算选择市面上开源RPA框架作为基础进行二次开发。目前市面上开源的RPA框架主要五个,分别是:Robot Framework、Taskt、UI.Vision、OpenRPA和TagUI,参考这篇博客中总结的各个框架的优缺点如下:
在这里插入图片描述
因需要开发的RPA中需要包含通过拖拽的方式配置流程的功能,综合考虑下来决定选择使用OpenRPA为框架作为基础进行二次开发,以下内容主要记录OpenRPA source code编译方法以及编译过程中遇到的error。

1 source code下载

openRPA的github地址为:

https://github.com/open-rpa/openrpa

参考官方文档,在gitbash中通过以下命令下载源代码:

git clone https://github.com/open-rpa/openrpa.git --recursive

2 source code build

openrpa是由多个子项目组成的,下载完成后官方推荐使用Visual Studio 2022社区版打开OpenRPA.sln,需要注意的是openrpa中大多数子项目基于.net 4.6,所以Visual Studio 2022中需要提前安装.net 4.6.2。
第一次打开项目后会出现不支持的提示,点击确定就可以。
在这里插入图片描述
然后会出现Open3276Library .net版本不支持的问题,选择默认选项点击继续就行。
在这里插入图片描述
迁移报告中会出现一项error,不必理会。
在这里插入图片描述
按照官方文档中说明,需要关闭visual studio再重新打开openrpa.sln,然后需要删除“installer”文件夹下的两个安装程序项目,即下图中框住的两个文件。
在这里插入图片描述
然后选择重新生成解决方案,竟然出现了74个错误,一开始有被吓到,差点被劝退。仔细看了一下大多数是.net版本兼容和项目直接的依赖关系方面的错误。
在这里插入图片描述
接下来开始一一处理这些错误,第一个错误如下:

“H:\Code\RPA\openrpa\OpenRPA.NamedPipeWrapper\bin\Debug\net40\OpenRPA.NamedPipeWrapper.dll”

出现这种问题是因为OpenRPA.NamedPipeWrapper项目的目标.NETFramework是4.5,但是我的电脑里没有安装.NETFramework4.5,虽然官方里推荐的是用VS2022编译,但是感觉使用VS2017应该就不会出现这种问题。这种问题有两种解决方法:
(1)电脑中下载安装.NETFramework是4.5
(2)将OpenRPA.NamedPipeWrapper项目的目标.NETFramework是改为电脑中已经安装的4.6
我选择了第二种方法。
在这里插入图片描述
更改完OpenRPA.NamedPipeWrapper项目的目标.NETFramework后重新生成一下NamedPipeWrapper项目,然后再重新重新生成解决方案,这时错误就剩15个了

在这里插入图片描述
接下来看到Open3276Library这个子项目的error 挺多的,查看发现刚才项目迁移的时候将Open3276Library默认.NETFramework设置成了4.8,正确的应该是设置成4.6。
在这里插入图片描述

将Open3276Library默认.NETFramework设置成4.6后重新生产Open3276Library,然后再重新生产解决方案,error就剩下6个了。
在这里插入图片描述
然后就是下面这个error最多,SAPBridge这个子项目暂时用不到,就简单粗暴的直接从项目中移除。

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 NU1201 项目 OpenRPA.NamedPipeWrapper 与 net45 (.NETFramework,Version=v4.5) / win7-x86 不兼容。 项目 OpenRPA.NamedPipeWrapper 支持: net46 (.NETFramework,Version=v4.6) OpenRPA.SAPBridge H:\Code\RPA\build-test-openrap\openrpa\OpenRPA.SAPBridge\OpenRPA.SAPBridge.csproj 1

移除SAPBridge子项目后error就剩两个了。
在这里插入图片描述
先处理LiteDB子项目的error.

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB3644 找不到 .NETFramework,Version=v4.5 的引用程序集。要解决此问题,请为此框架版本安装开发人员工具包(SDK/目标包)或者重新定向应用程序。可在 https://aka.ms/msbuild/developerpacks 处下载 .NET Framework 开发人员工具包 LiteDB C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 1229

处理方法是将LiteDB子项目的.NETFramework设置成4.6,直接更改LiteDB子项目的配置文件,更改TargetFrameworks字段即可。
在这里插入图片描述
更改后先重新生成LiteDB子项目,再重新生成解决方案,又出现了两个新error。
在这里插入图片描述
看代码是debug用到的变量未定义,直接注释掉相关的代码就可以。

#if DEBUG
            //WorkflowDesigner.ContextMenu.Items.Add(runthis);
            //WorkflowDesigner.ContextMenu.Items.Add(runFromHere);
#endif

如果编译过程中遇到了InitializeComponent函数未定义的error,说明VS中没有安装workflow组件。

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 CS0103 当前上下文中不存在名称“InitializeComponent” OpenRPA H:\Code\RPA\openrpa\OpenRPA\Views\WFDesigner.xaml.cs 263 活动

可以通过VS的安装程序来安装workflow组件,安装完毕后该error就可解决
在这里插入图片描述
然后重试生成解决方案,34个项目全部通过。
在这里插入图片描述

将OpenRPA项目设置为启动项,启动调试,就可以看到主界面了,完美解决所有build问题。
在这里插入图片描述

参考

https://blog.csdn.net/scofild950303/article/details/129179259
https://mp.weixin.qq.com/s/XEyF1i-nlECYtL3MEhNR-Q
https://blog.csdn.net/weixin_57291105/article/details/134378495


http://www.niftyadmin.cn/n/5189955.html

相关文章

以太网基础——DoIP报文类型

文章目录 前言一、DoIP payload types二、节点管理报文0x0000:Generic DoIP header negative acknowledge0x0001:Vehicle identification request message0x0002:Vehicle identification request message with EID0x0003:Vehicle identification request message with VIN0…

MFA多因子认证

什么是多因子认证(MFA)?为什么需要MFA? 同义词 多因子认证或者多因素验证 [尤其是需要做等级保护测评的时候需要用到] 摘要 多因子认证MFA(Multi Factor Authentication)是一种安全认证过程,需…

Arduino驱动DHT22温湿度传感器(温湿度传感器)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 DHT22数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。 传感器包括一个电容式感湿元件和一个NTC…

计算机是如何工作的(简单介绍)

目录 一、冯诺依曼体系 二、CPU基本流程工作 逻辑⻔ 电⼦开关——机械继电器(Mechanical Relay) ⻔电路(Gate Circuit) 算术逻辑单元 ALU(Arithmetic & Logic Unit) 算术单元(ArithmeticUnit) 逻辑单元(Logic Unit) ALU 符号 寄存器(Regis…

解密.locked1勒索病毒:专家级策略保护您的数据免受勒索攻击

导言: 在当今数字化的世界中,勒索病毒的威胁日益严峻。.locked1 勒索病毒作为其中的一种,采用高级的加密算法对用户文件进行加密,要求支付赎金以获取解密密钥。本文91数据恢复将介绍如何面对.locked1 勒索病毒,有效恢…

Paypal发布公开信,三月已过,PYUSD发展如何?

2023年8月8日,美国支付巨头Paypal正式宣布推出其稳定币PYUSD,成为美国传统大型金融机构发行稳定币的首家企业。 当时,正值美国SEC与加密交易所Coinbase、Binance的诉讼白热化,Paxos被迫停止发行BUSD的阶段,在此背景下&…

周赛371(模拟、哈希+排序+枚举)

文章目录 周赛371[2932. 找出强数对的最大异或值 I](https://leetcode.cn/problems/maximum-strong-pair-xor-i/)模拟 [2933. 高访问员工](https://leetcode.cn/problems/high-access-employees/)哈希 分组排序 枚举 [2934. 最大化数组末位元素的最少操作次数](https://leetc…

解决Github上的README无法显示图片

首先感谢博主的思路:思路 最近写了点东西提交到git 发现本地能查看md里的图片用的相对路径,提交到github就看不见,并且发现不只是我自己的仓库看不见,其他人的我也看不见。那就有问题了 解决:正常使用相对路径&…