openRPA开源项目源码编译

最近接触到了一个新的领域------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地址为:

bash 复制代码
https://github.com/open-rpa/openrpa

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

bash 复制代码
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用到的变量未定义,直接注释掉相关的代码就可以。

csharp 复制代码
#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

相关推荐
掌心向暖RPA自动化1 天前
用影刀RPA获取公呺搜索关键词文章数据,如何判断文章条目元素是否在可视区域?| 文章列表的循环点击方案拆解
经验分享·自动化·新媒体运营·rpa·影刀rpa
天空属于哈夫克31 天前
利用 RPA 绕过 API 限制,实现企业微信外部群主动触达
企业微信·rpa
天空属于哈夫克31 天前
基于 RPA 自动化实现企业微信外部群消息触达的逻辑与实现
自动化·企业微信·rpa
天空属于哈夫克31 天前
基于 RPA 自动化实现企微外部群消息触达的逻辑与实践
自动化·企业微信·rpa
天空属于哈夫克32 天前
企业微信外部群RPA自动化实战
自动化·企业微信·rpa
RPA机器人就选八爪鱼2 天前
RPA在银行IT运维领域的应用场景与价值分析
大数据·运维·数据库·人工智能·机器人·rpa
天空属于哈夫克33 天前
利用剪贴板“管道”实现超大文本的极速填充
自动化·企业微信·api·rpa
梦想的旅途26 天前
三语言实现企微外部群消息推送
自动化·企业微信·rpa
AI_56786 天前
Python RPA解放Excel生产力
python·excel·rpa
梦想的旅途26 天前
基于 UI 驱动(RPA)实现企业微信外部群自动化推送的技术逻辑
ui·自动化·企业微信·rpa