【问题标题】:Can .net micro framework project upgrade to .net core?.net 微框架项目可以升级到.net core 吗?
【发布时间】:2020-01-09 01:58:24
【问题描述】:

我是一名网络开发人员。但我接手了一个遗留项目(关于嵌入式硬件),它是用 C# 和 .net 微框架编写的。我的老板要我将此项目升级到 .net core 3.1。

在网上搜索了一下,好像很难做到,因为项目代码使用了很多.net微框架的内置功能。

例如:

Microsoft.SPOT.Time.TimeService.SetTimeZoneOffset(currentTimeZone * 2);

这条语句调用了一个extern方法,即:

        /// <summary>
        /// Sets time zone of the system. Effective immediately.
        /// </summary>
        /// <param name="offsetInMinutes"></param>
        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        public static extern void SetTimeZoneOffset(int offsetInMinutes);

而这个extern 方法将调用一个C++ 方法。

我对将.net微框架升级到.net核心的可能性充满了疑问。

您能给出任何意见或指导吗?


编辑: 感谢@mtz,我点击链接并在 Visual Studio 2019 中使用了“.NET Portability Analyzer”。报告称旧项目中使用的 DDL 与 .net core 兼容。

见下文:

这是否意味着我可以直接使用 .net 微框架中的这些 DDL?

【问题讨论】:

  • 我对将 .net 微框架升级到 .net 核心的可能性充满怀疑。 是的,它适用于不同类型的硬件...... AFAIK .NET Core 需求至少是 ARM7,所以它甚至不能为 Pi Zero 工作(没有官方分发)
  • 首先你应该检查你的硬件是否有 .net core 运行时...链接显示了如何从 .NET Framework 迁移到 .NET core 而不是从 .NET Micro Framework
  • @Selvin,谢谢。尴尬的情况是,这个遗留项目分配给了完全不了解硬件的我。不要管它。现在的问题是我的老板要我在 .net core 中找到方法或 DLL 来替换这些方法或 DLL。 google了很久,没有找到合适的结果。

标签: c# .net-core .net-micro-framework


【解决方案1】:

看看这个指南https://docs.microsoft.com/en-us/dotnet/core/porting/

.NET Framework 并不完全是 .NET Micro Framework,但这会让您了解挑战。

如果我是你,我可能会先分析 csproj,然后尝试将它们移动到新的 csproj 格式。

至于您引用的代码,它是互操作代码,并不特定于 .NET Micro Framework,您可以在重定向到 .NET Core 3 时重新使用它。更多信息here

【讨论】:

  • 感谢您的回复和链接。关于最后一段,我想知道它是否可以跨平台工作,例如Linux?
  • 是的,互操作 .NET 代码是跨平台友好的。见mono-project.com/docs/advanced/pinvoke
  • 不知道该怎么做。只需尝试为 netstandard2.0 编译,看看会发生什么。
猜你喜欢
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多