首页 > 其他分享 >【爬坑】.Net编译环境导致的问题

【爬坑】.Net编译环境导致的问题

时间:2024-09-06 13:24:55浏览次数:10  
标签:AnyCPU x86 framework 32 环境 编译 64 Net net

1. 背景:

  • 项目中遇到一个串口设备,通过调用它自带的.dll动态链接库通信,最开始在.net framework4.7.2的框架下设备能返回数据(正常通信)。但是换到.net 6.0的框架后,可以运行(没有报错),但是不能得到设备返回的数据了。

2. 错误的解决思路:

  • 当时觉得是框架的问题,反编译可以看到该.dll的反射,但是没有源码不能修改。
  • 如果尝试用.net upgrade assistant强行升级框架,该.dll文件只会出现提示Cannot add reference "xxx.dll" to project "xxx" because their target framework are incompatible ,没有任何实际作用。

3. 正确的解决思路:

  • 不管是.net framework 4.7.2 还是 .net 6.0,当时都是默认的Any CPU,这个环境造成了这个问题。
  • 该串口设备在运行的时候环境是基于x86的,所以在.net 6.0的框架下,把CPU类型选成x86就行了。

4. 获得的经验:

    1. .net upgrade assistant作为一个升级框架的官方免费工具,还是很好用的。用到visual stiduo的拓展工具下载它,如果发现下载很慢的话,右键打开WLAN网络属性,把ipv6给关了,会好的多。
    1. 在.net framework下使用AnyCPU能正常的原因如下图,.net framework 4.5以上默认首选32位
    • 在32位系统下,运行32位程序
    • 在64位系统下,运行32位程序,但是可以获得4G内存
    • 在ARM下,运行32位程序
    • 那么AnyCPU(Prefer 32-bit) 和x86有什么区别?实际上在ARM系统,只能使用 AnyCPU(Prefer 32-bit) 运行32位程序,如果选择x86就无法运行。
    • 为什么需要在64位的设备使用 AnyCPU(Prefer 32-bit),因为如果存在一些库只能在32位程序运行,那么就需要运行的程序是32位,所以需要使用这个方法。
    • ARM32/ARM64是ARM CPU下的32位或者64位系统;
    1. 在.net 环境下没有这个默认选项,在64位的电脑上用AnyCPU表示用anycpu编译的可执行文件将在64位CLR上执行。
    1. 手动改为x86就行,如图:

标签:AnyCPU,x86,framework,32,环境,编译,64,Net,net
From: https://www.cnblogs.com/xiacuncun/p/18400054

相关文章

  • JSP酒店综合管理平台7ez9p--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,收银,客房信息,散客预订,团体预订,房间分类,换房信息,取消预订,散客结账,团体结账,交接信息,监控检测,系统提醒技术要求:开发语言:JSP前端使用:H......
  • 828华为云征文|华为云Flexus X实例下的场景体验——小企业的福星——最简单的php环境搭
    前言都是php是全世界最好的语言,我也是非常的喜欢,虽然我是搞大数据的,但是php在很逗情况下对于个人开发者来说是非常友好的,对于一般小企业来说使用【华为云FlexusX实例】来搭建一个php服务跑自己的【企业网站】是最方便不过的了,接下来我们就来搭建一下环境。目录前言PHP环境......
  • Springboot高校竟赛活动报名管理系统ut5tx程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:学生,评委,比赛信息,报名信息,竞赛信息,比赛结果,投诉建议开题报告内容一、项目背景与意义随着高等教育的不断发展,各类学科竞赛已成为培养学生实践能......
  • JSP就业系统的设计与实现kd92s(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,企业,招聘信息,投掷简历,课程信息,简历库,邀请信息,校园宣传会,报名信息,沟通信息开题报告内容一、选题背景与意义随着信息技术的快速发展和互联......
  • Kubernetes-etcd备份恢复
    目录使用etcdctl备份与恢复简介集群信息etcdctl安装下载安装同步到其他节点配置环境变量查看集群状态查看所有key查看指定key备份所有节点创建备份目录备份etcd数据恢复删除资源所有master节点停止etcd所有master节点备份原有数据master01恢复master02恢复master03恢复所有节点启......
  • .NET 8 + WPF 企业级工作流系统
    合集-.NET开源工具(11) 1..NET开源快捷的数据库文档查询和生成工具07-312..NET结果与错误处理利器FluentResults08-013..NET+WPF桌面快速启动工具GeekDesk08-194.Gradio.NET支持.NET8简化Web应用开发08-265..NET开源实时监控系统-WatchDog08-276.实用接地......
  • .NET 8.0 文档管理系统网盘功能的实现
    合集-.NET开源工具(11) 1..NET开源快捷的数据库文档查询和生成工具07-312..NET结果与错误处理利器FluentResults08-013..NET+WPF桌面快速启动工具GeekDesk08-194.Gradio.NET支持.NET8简化Web应用开发08-265..NET开源实时监控系统-WatchDog08-276.实用接地......
  • pwn基础(一)环境搭建
    "Pwn"是一个黑可语法的俚语词,源自动词"own",表示攻破或控制设备或系统。它常用于描述成功利用系统或应用程序的漏动,绕过安全措施并获取系统权限的行为。在网络安全领域,"pwn"通常与二进制漏动利用相关,涉及分析程序、发现漏动并构造特定的输入或代码来触发这些漏动,从而实现对目标系统......
  • .NET 多版本兼容的精美 WinForm UI控件库
    前言有粉丝小伙伴在后台留言咨询有没有WinForm控件库推荐,现在就给安排上。.NET平台进行Windows应用程序开发的我们来说,找一个既美观又实用的WinFormUI控件库至关重要。本文将介绍ReaLTaiizor一款不仅具备精美界面、丰富控件选择,还支持从.NETFramework4.8到.NET8......
  • CLion 配置 Qt 开发环境
    https://blog.csdn.net/theRavensea/article/details/136534197 录CLion配置Qt开发环境环境说明基本配置1.创建Qt项目2.设置CLion工具链3.配置外部工具一些问题的补充CLion配置Qt开发环境环境说明操作系统:Windows10CLion版本:2023.3.4CMake版本:3.27.7Qt6版本:6.6.2(......