Я слышал, что .NET Core может работать и на Linux, и на Mac. В настоящее время я использую Mono на малине PI. Возможно ли это или можно будет запустить .NET Core на малине PI?
Возможно ли запустить .NET Core на малиновый PI?
Ответ 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):
- 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
Видео, которое я сделал с "как" получить двоичные файлы (включая наше приложение):
Ответ 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.
Изменить → Кроме того, похоже, что 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, для которых требуется восстановление.