可以在Raspberry PI上运行.NET Core吗?

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

现在或即将发布,因为微软宣布 CoreCLR在GitHub上可用 。

今天,.NET Core在Windows上构build和运行。 我们将在接下来的几个月里添加特定于平台的组件的Linux和Mac实现。 我们在.NET Core中已经有了一些特定于Linux的代码,但是我们真的只是开始使用我们的端口。 我们首先要打开代码,以便我们都能从一开始就享受跨平台的旅程。

现在,您可以在Raspberry PI上运行dotnet核心。 为了做到这一点,你需要:

  1. 交叉编译coreclr&corefx(可能在Linux x64机器上)
  2. 将没有专用和预编译文件的dll解压缩到PI
  3. 将您的应用程序的托pipedll复制到PI
  4. 使用“corerun”可执行文件来运行你的应用程序

如果你想跳过上面的内容,并得到树莓派3(或甚至整个图像)的现成的二进制文件,你可以使用我的编译版本:

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

注意:我可以在Raspberry PI 3上使用Headless Ubuntu Server 16.04和Ubuntu Mate 16.04。 我认为需要在Raspbian操作系统和PI 2上完成额外的步骤(即安装额外的软件包)。

Cross Compilation的链接(在Ubuntu 16.04 x64机器上):

  • coreclr: https : //github.com/dotnet/coreclr/blob/master/Documentation/building/cross-building.md
  • corefx: https : //github.com/dotnet/corefx/blob/master/Documentation/building/cross-building.md

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

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

我会发表评论,但因为我不能作为回答张贴,我认为接受的答案应该更新。因为这是可能的,因为这是检查到coreclr https://github.com/dotnet/coreclr/pull / 1210

尽pipe这仍然非常粗糙(exception处理和debugging还没有得到支持),但这是所有社区的努力,所以你不可能将它作为一个解决scheme,但最终它会到达那里。 date:7/26/2015

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

我遵循https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md和https://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 restore 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的来源。 对于实际的Linux或其他非Windows实现,您很可能仍然使用Mono或Xamarin产品之一。 因为它们包含比核心function更广泛的支持。 Xamarin正在使用.NET核心资源,并使用它来修复.NET实现中的漏洞和错误。 微软也正在使Visual Studio Mono / Xamarin友好,它将与Xamarin的试用/基础产品一起用于移动开发中,但尚未发布VS版本。

http://tirania.org/blog/

编辑 – >另外,这听起来像微软正在做的董事会的Windows 10的免费版本。 这也将运行。净。

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

还没有AFAIK,但CoreCLR至less有一些版本的ARM架构的代码。 树莓派2将是一个更好的select。