36 条回复  ·  4009 次点击
opengps 初学 2025-8-26 10:06:05
只能重写,用 .net7 比较稳妥
opengps 初学 2025-8-26 10:07:04
@opengps #10 大部分代码都是直接拷贝,但总会有些引用库可能不支持.net7 需要替换或者自己补充逻辑重新实现
yicong135 初学 2025-8-26 10:10:05
如果引用的第三方库不一定支持 arm
irisdev 小成 2025-8-26 10:10:29
肯定是方案一,迁移到 net core 引用的第三方库的兼容性会把你搞死
NightFlame 初学 2025-8-26 10:11:47
@forgottencoast 如果不依赖于 windows 底层库的,用 IDE 选择新的.net core 框架,还要做改什么
magic3584 楼主 初学 2025-8-26 10:11:48
@Mithril #8 我也不清楚用了什么库,现在只知道之前项目用 C# 依赖了.NET Framework 4.0 ,然后在一个网页里面调用的,其中有硬件交互。 虽然都是 Web 应用,但你这程序如果底层用了一些第三方的库,P/Invoke 了一些 C++或者用驱动读写了一些硬件,那大概率是转移不了的 ------------------ 我理解的是把库和相关方法替换掉就行了,C++那些代码我不用动。所以我不太懂为什么转移不了,请大佬指点。
magic3584 楼主 初学 2025-8-26 10:16:53
@luojianxhlxt #1 wc !我问了 GPT ,说即使支持 arm 但是仍然只限于 windows!
magic3584 楼主 初学 2025-8-26 10:22:09
@irisdev #13 抱歉误导大佬了,我搜了下即使升级也是只支持 windows, 现在我是想跑在 arm 的国产系统上
unhappy224 初学 2025-8-26 10:23:29
可以试试 mono 应该大部分都没问题,之前我试过在 arm mac 下运行 .net 4.5 的 cli 程序,没什么问题
Mithril 小成 2025-8-26 10:23:55
@magic3584 那很麻烦,如果这活不是砸死你头上了,建议不要接。 C++,还是硬件驱动,是大概率没法直接二进制跨平台的。你至少也需要重新编译才行。你这.NET Framework 4.0 的项目估计已经很老了,你找对应硬件的 ARM 平台和系统驱动,C++代码就得找半天。找到代码了,编译测试好了,才是你.NET 代码的事。这还是不算你 C++代码根本没法跨平台的事。你那 C++部分要是用了什么 ATL ,MFC ,或者一堆 Windows API ,迁移它还不如重新找个供应商。 然后你得测试从 C#代码里调用你 C++的 Wrapper ,这个你怎么都要改(至少 Linux 上你的库大概率不叫 x.dll )。这个测试你得用对应平台才行。比如你用 ARM 的 Ubuntu ,甚至用 ARM 的 Windows 11 ,也得找个测试机才可以。 最后才是你那 Web App ,迁移这层相对来说是最简单的了。 所以你以为是迁移一个 Web 应用到 ARM 平台,实际上是一整个大深坑。而且最难的根本不在.NET 部分,而是你要把你硬件那堆东西先迁移到 ARM 才行。
返回顶部