Подтвердить что ты не робот

Возможно ли запустить .NET Core на малиновый PI?

Я слышал, что .NET Core может работать и на Linux, и на Mac. В настоящее время я использую Mono на малине PI. Возможно ли это или можно будет запустить .NET Core на малине PI?

4b9b3361

Ответ 1

Мне удалось запустить приложение .NET Core 2 на Raspberry PI 3 с помощью Raspbian.

Я подписался на 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 publish -r linux-arm

На Raspberry PI 3 с Raspbian:

Запустите 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 ]

Беги ./helloworld

Ответ 2

Теперь вы можете запустить ядро ​​dotnet на малиновый PI. Для этого вам необходимо:

  • Кросс-компиляция coreclr и corefx (возможно на машине Linux x64)
  • Извлеките dll без личных и предварительно скомпилированных файлов в PI
  • Скопируйте управляемые DLL приложения в PI
  • Используйте исполняемый файл "corerun" для запуска вашего приложения.

Если вы хотите пропустить вышеупомянутое и получить готовые исполняемые файлы для Raspberry PI 3 (или даже всего изображения), вы можете использовать мою скомпилированную сборку по адресу:

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

Примечание: Я смог сделать это на малине PI 3, используя Headless Ubuntu Server 16.04 и Ubuntu Mate 16.04. Я предполагаю дополнительные шаги (т.е. Установку дополнительных пакетов), которые необходимо выполнить для ОС Raspbian и PI 2.

Ссылки для кросс-компиляции (на машине Ubuntu 16.04 x64):

Видео, которое я сделал с "как" получить двоичные файлы (включая наше приложение):

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

Ответ 3

Теперь или скоро это будет возможно, потому что Microsoft анонсирован. CoreCLR доступен на GitHub.

Сегодня .NET Core строит и работает в Windows. В течение следующих нескольких месяцев мы добавим реализации Linux и Mac для компонентов платформы. У нас уже есть какой-то Linux-код в .NET Core, но на самом деле мы просто начали работать в наших портах. Сначала мы хотели открыть код, чтобы мы с самого начала могли наслаждаться кросс-платформенным путешествием.

Ответ 4

Я бы сделал комментарий, но так как я не могу отправить сообщение в качестве ответа, и я думаю, что принятый ответ должен быть обновлен. Поскольку это возможно сейчас, поскольку это проверено на coreclr https://github.com/dotnet/coreclr/pull/1210

Это было все усилия сообщества, хотя это все еще очень грубо (обработка исключений и отладка еще не поддерживаются), поэтому вы не сможете уйти с ним в качестве решения, но в конечном итоге он будет доступен. Датировано: 7/26/2015

Ответ 5

Microsoft сделала исходный код доступным для .NET Core. Для реальной версии Linux или другой не Windows вы, скорее всего, по-прежнему будете использовать Mono или один из продуктов Xamarin. Поскольку они содержат более широкую поддержку, чем просто функциональность Core. Xamarin использует основной источник .NET и использует его для исправления ошибок и ошибок в своей реализации .NET. Microsoft делает также Visual Studio Mono/Xamarin дружественным, и он будет поставляться с пробным/базовым продуктом Xamarin для мобильной разработки в еще не выпущенной версии VS.

См. http://tirania.org/blog/

Изменить → Кроме того, похоже, что Microsoft делает бесплатную версию Windows 10 для платы. который также будет работать .Net.

Ответ 6

Возможно ли это или можно будет запустить .NET Core на малине PI?

Еще не AFAIK, но CoreCLR имеет код, по крайней мере, для некоторых версий архитектуры ARM. Малина Pi 2 будет лучше.

Ответ 7

@TN.

Все остальное нормально, кроме того, что нет необходимости запускать dotnet restore

См. Https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish?tabs=netcore21.

Начиная с .NET Core 2.0, вам не нужно запускать восстановление dotnet, потому что оно запускается неявно всеми командами, такими как сборка dotnet и запуск dotnet, для которых требуется восстановление.