.net core 可以在Raspberry PI上运行.NET内核吗?

.net core 可以在Raspberry PI上运行.NET内核吗?,.net-core,raspberry-pi,.net Core,Raspberry Pi,我听说它也可以在Linux和Mac上运行。我目前在树莓皮上使用Mono。在Raspberry PI上运行.NET Core是否可能?Microsoft已经提供了.NET Core的源代码。对于实际的Linux或其他非Windows实现,您很可能仍然使用Mono或Xamarin产品之一。因为它们包含比核心功能更广泛的支持。Xamarin正在获取.NET核心源代码,并使用它修复.NET实现中的漏洞和bug。微软也在使VisualStudio Mono/Xamarin变得友好,它将与Xamarin的移

我听说它也可以在Linux和Mac上运行。我目前在树莓皮上使用Mono。在Raspberry PI上运行.NET Core是否可能?Microsoft已经提供了.NET Core的源代码。对于实际的Linux或其他非Windows实现,您很可能仍然使用Mono或Xamarin产品之一。因为它们包含比核心功能更广泛的支持。Xamarin正在获取.NET核心源代码,并使用它修复.NET实现中的漏洞和bug。微软也在使VisualStudio Mono/Xamarin变得友好,它将与Xamarin的移动开发试用/基础产品一起出现在一个尚未发布的VS版本中


编辑->另外,听起来微软正在为董事会制作免费版本的Windows10。它也将运行.Net。

现在或很快它将成为可能,因为Microsoft CoreCLR在上可用

现在,.NETCore在Windows上构建和运行。在接下来的几个月里,我们将添加平台特定组件的Linux和Mac实现。我们在.NETCore中已经有了一些特定于Linux的代码,但我们的端口才刚刚起步。我们想首先开放代码,这样我们从一开始就可以享受跨平台的旅程

是否有可能在Raspberry PI上运行.NET内核


目前还不成熟,但CoreCLR至少有一些ARM架构版本的代码。Raspberry Pi 2会是一个更好的选择。

我会发表评论,但因为我不能发表评论,所以我将作为答案发布,我认为接受的答案应该更新。因为现在这是可能的,因为它已签入coreclr

这都是社区的努力,尽管这仍然非常粗糙(异常处理和调试还不受支持),因此您无法将其作为解决方案进行深入研究,但最终它会实现。
日期:2015年7月26日现在您可以在Raspberry PI上运行dotnet core。 为此,您需要:

  • 交叉编译coreclr和corefx(可能在Linux x64机器上)
  • 将没有私有和预编译文件的DLL提取到PI
  • 将应用程序的托管DLL复制到PI
  • 使用“corerun”可执行文件运行应用程序
  • 如果您想跳过上述步骤,为Raspberry PI 3(甚至整个图像)准备一个现成的二进制文件,您可以在以下位置使用我的编译版本:

    注: 我可以在Raspberry PI 3上使用无头Ubuntu服务器16.04和UbuntuMate 16.04做到这一点。我认为需要在Raspbian OS和PI 2上执行其他步骤(即安装其他软件包)

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

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


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

    我遵循并:

    在我的笔记本电脑上:

    安装

    编辑helloworld.csproj

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp2.0</TargetFramework>
        <RuntimeIdentifiers>win-arm;linux-arm</RuntimeIdentifiers>
      </PropertyGroup>
    
    </Project>
    
    覆盆子皮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核心将在Raspberry Pi 3上运行

    您可以在stackoverflow中找到安装过程

    在更多详细信息中,您也可以找到下面的链接


    MS只宣布了进一步的支持,但我还没有看到他们发表声明说它已经可用。大概clr必须在Linux Arm上工作,而不是在Linux INTEL上工作。。。。特别是覆盆子里的手臂芯片。NET在Raspberry上的mono实现几乎可以使用。请参阅@AnthonyLambert,正如我在问题中所写的,我目前正在Raspberry上使用mono。@SuperJMN,在讨论这一点时,dotnet core团队取得了巨大的进步,dotnet core 2可以像TN的新帖子所建议的那样托管应用程序。但是,如果您仍然希望使用Dotnet1.0.4或更低版本,则需要在Raspbian上安装gcc-5,以使其正常工作。因此,dotnet 2.0的指南已经在这里了:,我建议您尝试迁移到2.0-它将修复dotnet core中的许多重要内容。好的,让我知道。@TN:Haha,还在等待,我们快到2016年底了。。。遗憾的是,在我的Chromebook上编译它需要太多的空间……”“对于实际的Linux或其他非Windows实现,您仍将使用Mono或Xamarin产品之一”。在Linux或OSX上运行CoreCLR不需要Mono。当你根本不必使用Mono时,你说“你仍然会使用Mono”。好吧,这是真的,大多数人会发现Mono产品对不同的系统和程序集有更广泛的支持。我想知道的动机是Mono在Raspberry Pi上编译F#时内存不足。我希望它在CoreCLR上编译得很好,因为它有一个更好的GC。我不确定它是否是一个隐藏的广告,因为它包含一个促销链接。我将在@TN上回答这个问题。我与我的同事和CoreCLR团队(他们通过将dotnet移植到arm32 arch上做了很多工作)一起在这方面做了一些工作。该链接包含tar文件,包括dotnet核心二进制文件。据我所知(到目前为止),在网络上没有一个包含PI上工作的dotnet的存档文件可以下载,也没有一个图像。@TN如果你不喜欢它(问题属于你)-我可以删除它(没有伤害感),您可以继续在其他地方寻找RPI上的工作dotnet核心。我希望看到.NET核心交叉编译到Raspbian上。有人做过吗?@emseetea-你可以。遵循
    <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