openRPA开源项目源码编译

news2025/1/10 16:43:30

最近接触到了一个新的领域——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.coloradmin.cn/o/1221033.html

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

相关文章

【Vue配置项】 computed计算属性 | watch侦听属性

目录 前言 computed计算属性 什么是计算属性? Vue的原有属性是什么? 得到的全新的属性是什么? 计算属性怎么用? 计算属性的作用是什么? 为什么说代码执行率高了? computed计算属性中的this指向 co…

CTFd-Web题目动态flag

CTFd-Web题目动态flag 1. dockerhub注册2. dockerfile编写3. 上传到docker仓库4. 靶场配置5. 动态flag实现 1. dockerhub注册 想要把我们的web题目容器上传到docker仓库中,我们需要dockerhub官网注册一个账号,网址如下 https://hub.docker.com/2. dock…

Android Glide加载transform CenterCrop, CircleCrop ShapeableImageView圆形图并描边,Kotlin

Android Glide加载transform CenterCrop, CircleCrop ShapeableImageView圆形图并描边,Kotlin import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.…

基于ssm+vue设备配件检修管理系统

摘要 随着工业设备的日益复杂和多样化,设备配件的检修管理成为保障生产运行和设备寿命的关键环节。本研究基于SSM框架(Spring Spring MVC MyBatis),致力于设计和实现一套全面、高效的设备配件检修管理系统。该系统不仅能够提高设…

从0开始学习数据结构 C语言实现 1.前篇及二分查找算法

一、前篇 1、什么是数据结构? 数据结构是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系 2、时间复杂度与空间复杂度 大O符号是用于描述函数渐进行为的数学符号 常用函数的增长表 阶乘O(n!) > 指数…

常见面试题-MySQL软删除以及索引结构

为什么 mysql 删了行记录,反而磁盘空间没有减少? 答: 在 mysql 中,当使用 delete 删除数据时,mysql 会将删除的数据标记为已删除,但是并不去磁盘上真正进行删除,而是在需要使用这片存储空间时…

【原创】java+swing+mysql校园活动管理系统设计与实现

前言: 本文介绍了一个校园活动管理系统的设计与实现。该系统基于JavaSwing技术,采用C/S架构,使用Java语言开发,以MySQL作为数据库。系统实现了活动发布、活动报名、活动列表查看等功能,方便了校园活动的发布和管理&am…

如何合理估算 Java 线程池大小

前 言 Java 中的线程创建会产生显著的成本。创建线程会消耗时间,增加请求处理的延迟,并且涉及 JVM 和操作系统的大量工作。为了减轻这些开销,线程池发挥了作用。 在本文中,我们将深入研究确定理想线程池大小的艺术。经过微调的线…

【数据结构】栈与队列的实现

栈与队列是数据结构中重要的结构, 可以用于解决一些题目 模拟实现时可以增加对于这些结构的理解,也可以巩固我们的语言水平,解决某些题目也会有很好的效果 话不多说 目录 栈的实现结构体的定义:初始化栈:压栈:出栈&am…

leetcode栈和队列三剑客

用队列实现栈 队列是先进先出的,而栈是只能在栈顶进行出栈和入栈,那我们这道题要用队列来实现栈的话,这里给的思路是两个队列,因为两个队列的话就可以相互导数据,比如我们来实现这个题目的push函数,我们的栈…

面试其他注意事项

面试其他注意事项 一、面试反问 这个岗位的日常工作和主要职责是什么?咱们这边主要负责什么业务,用到了哪些技术呢?对于我们校招生有没有培养体系呢?脱产培训,还是边工作边熟悉?会有导师带嘛?…

飞书开发学习笔记(八)-开发飞书小程序Demo

飞书开发学习笔记(八)-开发飞书小程序Demo 一.小程序开发概述 1.1 小程序开发概述 飞书开发文档中查看:小程序开发概述 飞书小程序是指可以运行在飞书客户端中的小程序,小程序的一套代码可以适配 Android、iOS、PC 多平台,且用户体验与飞书…

计算机多媒体

1,媒体、多媒体 2,体系结构 3,采样、编码

公寓水电管理系统

springbootmybatisthymeleaf 这次练习是尝试将layer与系统结合起来,将新增、修改、删除都和弹窗结合起来。 一、需求分析 二、数据库 三、模块 1、登录页面 哈哈哈,之前做的登录页面都好丑,这是目前做的最好看的一次了。 超级管理员&…

卷积神经网络(CNN)鲜花的识别

文章目录 前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)我的环境: 2. 导入数据3. 检查数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集 三、构建CNN网络四、编译五、训练模型六、模型评估 前期工作 1. 设置GP…

串口通信原理及应用

Content 1. 前言介绍2. 连接方式3. 数据帧格式4. 代码编写 1. 前言介绍 串口通信是一种设备间非常常用的串行接口,以比特位的形式发送或接收数据,由于成本很低,容易使用,工程师经常使用这种方式来调试 MCU。 串口通信应用广泛&a…

【教3妹学编程-算法题】高访问员工

2哥 : 3妹,今天周五怎么还下班这么晚啊?这么晚了才回来 3妹:项目快上线了, 最近事情比较多,再累也要干, 撸起袖子加油干! 2哥 : 辛苦辛苦, 哎,你看到王自如格力那个采访了…

叮!您收到了一封来自达坦科技的Hackthon邀请函

DatenLord Hackathon 2023正式启动!达坦科技基于其跨云分布式文件系统DatenLord项目,结合AI大模型时代背景,搭建了擂台,在此正式向您发出邀约! 本次大赛赛题深刻有趣,奖品丰厚多样,借此机会您不…

034、test

之——全纪录 目录 之——全纪录 杂谈 正文 1.下载处理数据 2.数据集概览 3.构建自定义dataset 4.初始化网络 5.训练 杂谈 综合方法试一下。 leaves 1.下载处理数据 从官网下载数据集:Classify Leaves | Kaggle 解压后有一个图片集,一个提交示…

JavaWeb[总结]

文章目录 一、Tomcat1. BS 与 CS 开发介绍1.1 BS 开发1.2 CS 开发 2. 浏览器访问 web 服务过程详解(面试题)2.1 回到前面的 JavaWeb 开发技术栈图2.2 浏览器访问 web 服务器文件的 UML时序图(过程) ! 二、动态 WEB 开发核心-Servlet1. 为什么会出现 Servlet2. 什么是…