【问题标题】:Is it possible to run .NET Core on Raspberry PI?是否可以在 Raspberry PI 上运行 .NET Core?
【发布时间】:2014-11-13 11:27:53
【问题描述】:

我听说.NET Core 也可以在 Linux 和 Mac 上运行。我目前在 Raspberry PI 上使用 Mono。是否有可能或将有可能在 Raspberry PI 上运行 .NET Core?

【问题讨论】:

  • MS 只宣布了进一步的支持,但我还没有看到他们声明它已经可用。
  • 大概 clr 必须在 Linux Arm 而不是 Linux INTEL 上工作......特别是 Raspberry 中的 arm 芯片。 .NET 几乎可以通过 Raspberry 上的单声道实现获得。
  • @AnthonyLambert 正如我在问题中所写,我目前在 Raspberry 上使用 Mono。
  • @SuperJMN ,在讨论这个问题时,dotnet core 团队取得了巨大的进步,dotnet core 2 可以托管应用程序,正如 TN 的新帖子所暗示的那样。但是,如果您仍想使用 dotnet 1.0.4 或更低版本,则需要在 Raspbian 上安装 gcc-5 才能使其正常工作。因此,dotnet 2.0 的指南已经在这里:github.com/dotnet/core/blob/master/samples/…,我建议您尝试迁移到 2.0 - 它会修复 dotnet core 中的许多重要内容。

标签: .net-core raspberry-pi


【解决方案1】:

我已经设法在带有 Raspbian 的 Raspberry PI 3 上运行 .NET Core 2 应用程序。

我关注了https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.mdhttps://github.com/dotnet/core/issues/447

在我的笔记本电脑上:

安装.NET Core 2.0 SDK

运行

mkdir helloworld
cd helloworld
dotnet new console

编辑helloworld.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <RuntimeIdentifiers>win-arm;linux-arm</RuntimeIdentifiers>
  </PropertyGroup>

</Project>

运行

dotnet publish -r linux-arm

在带有 Raspbian 的 Raspberry PI 3 上:

运行sudo apt-get install libc6 libcurl3 libgcc1 libgssapi-krb5-2 libicu52 liblttng-ust0 libssl1.0.0 libstdc++6 libunwind8 libuuid1 zlib1g

然后从我的笔记本电脑复制./bin/Debug/netcoreapp2.0/linux-arm/publish

[修改helloworld的权限]

运行./helloworld

【讨论】:

  • 这应该成为公认的答案,因为 .Net Core 团队已经预发布了 .Net Core 2.0,它在 Pi 2 和 Pi 3 的处理器上运行良好。其他答案现已过时。
  • 最近(~8/1/17)发布了一个演练,Jeremy Lindsay 对我很有启发性:jeremylindsayni.wordpress.com/2017/07/23/…
  • 其他一切都很好,除了不需要运行dotnet restore 参见docs.microsoft.com/en-us/dotnet/core/tools/…:“从 .NET Core 2.0 开始,您不必运行 dotnet restore,因为它是隐式运行的通过所有需要还原的命令,例如 dotnet build 和 dotnet run。"
  • @Tom 我已经删除了 dotnet restore。
【解决方案2】:

现在您可以在 Raspberry PI 上运行 dotnet core。 为此,您需要:

  1. 交叉编译 coreclr 和 corefx(可能在 Linux x64 机器上)
  2. 将不带私有和预编译文件的 dll 提取到 PI 中
  3. 将应用的托管 dll 复制到 PI
  4. 使用“corerun”可执行文件运行您的应用

如果您想跳过上述步骤并为 Raspberry PI 3(甚至整个映像)获取现成的二进制文件,您可以在以下位置使用我编译的构建:

http://ravendb.net/promo/xmas-win-raspberry-pi

注意: 我能够在 Raspberry PI 3 上使用 Headless Ubuntu Server 16.04 和 Ubuntu Mate 16.04 做到这一点。我认为需要在 Raspbian OS 和 PI 2 上完成额外的步骤(即安装额外的包)。

交叉编译链接(在 Ubuntu 16.04 x64 机器上):

我用“如何”获取二进制文件(包括我们的应用程序)制作的视频:

https://www.youtube.com/watch?v=DPxCVDOUlT8

【讨论】:

  • 我不确定它是否是隐藏广告,因为它包含促销链接。
  • 我会回答那个@TN。我一直在与我的同事和 coreclr 团队(他们通过将 dotnet 移植到 arm32 arch 做得很好)一起做一些工作。该链接包含包含 dotnet 核心二进制文件的 tar 文件。据我所知(迄今为止),没有一个存档文件可以在网络上下载,其中包含 PI 上的工作 dotnet 或单个图像。
  • @TN 如果你不喜欢它(问题属于你) - 我可以删除它(没有伤害的感觉),你可以继续在其他地方寻找 RPI 上的工作 dotnet 核心.
  • 我希望看到 .NET Core 交叉编译到 Raspbian 上。有人做过吗?
  • @emseetea - 你可以。按照 ubuntu 步骤,但添加 raspbian/jessie:gcc-5 和 libicu57(来自“stretch”源)
【解决方案3】:

现在或不久将成为可能,因为 Microsoft announced CoreCLR 可在 GitHub 上使用。

今天,.NET Core 在 Windows 上构建和运行。在接下来的几个月中,我们将添加特定于平台的组件的 Linux 和 Mac 实现。我们已经在 .NET Core 中有一些特定于 Linux 的代码,但我们实际上才刚刚开始使用我们的端口。我们想先开放代码,让我们都能从一开始就享受跨平台的旅程。

【讨论】:

  • 好的,到时候告诉我。
  • @TN: 哈哈,还在等,我们快到 2016 年底了...遗憾的是,在我的 Chromebook 上编译它需要太多空间...
【解决方案4】:

我会发表评论,但由于我不能作为答案发布,我认为应该更新接受的答案。因为现​​在有可能,因为这已检查到 coreclr https://github.com/dotnet/coreclr/pull/1210

这都是社区的努力,尽管这仍然非常粗糙(尚不支持异常处理和调试),因此您无法将其作为解决方案走得太远,但最终它会到达那里。 日期:2015 年 7 月 26 日

【讨论】:

    【解决方案5】:

    Microsoft 已提供 .NET Core 的源代码。对于实际的 Linux 或其他非 Windows 实现,您很可能仍会使用 Mono 或 Xamarin 产品之一。因为它们包含比核心功能更广泛的支持。 Xamarin 正在采用 .NET 核心源并使用它来修复其 .NET 实现中的漏洞和错误。微软也在使 Visual Studio Mono/Xamarin 变得友好,它将在尚未发布的 VS 版本中附带 Xamarin 的用于移动开发的试用/基础产品。

    http://tirania.org/blog/

    编辑 -> 此外,微软似乎正在为开发板制作免费版本的 Windows 10。这也将运行 .Net。

    【讨论】:

    • “对于实际的 Linux 或其他非 Windows 实现,您仍将使用 Mono 或 Xamarin 产品之一”。在 Linux 或 OSX 上运行 CoreCLR 不需要 Mono。 github.com/dotnet/coreclr/wiki/…praeclarum.org/post/110552954728/…
    • 你说“你仍然会使用 Mono”,而你根本不需要使用 Mono。
    • 好吧,没错,大多数人会发现 Mono 产品对不同的系统和程序集有更广泛的支持。
    • 我想知道的动机是 Mono 在尝试在 Raspberry Pi 上编译 F# 时内存不足。我希望它在 CoreCLR 上编译得很好,因为它有更好的 GC。
    【解决方案6】:

    是否有可能或将有可能在 Raspberry PI 上运行 .NET Core?

    还没有 AFAIK,但 CoreCLR 至少有一些 ARM 架构版本的代码。 Raspberry Pi 2 会是更好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-28
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多