Zainstalowałem Ubuntu Core 16.04 na Raspberry PI 3 i udało mi się uruchomić na nim aplikację konsoli .NET Core, korzystając z instrukcji here i używając .NET Core w wersji 1.2 .0-beta-001291-00, która jest kompatybilna z układami ARM.Aplikacja ASP.NET Core na Ubuntu na Rasberry PI
Kiedy zrobić to samo z podstawowych aplikacji ASP.NET Core i pojawia się następujący błąd:
nieobsługiwany wyjątek: System.IO.FileLoadException: Nie można załadować pliku lub zestawu „ System.Component. Primitives, Version = 4.2.0.0, Cultire = Neutral, PublicKeyToken = b03f5f7f11d50a3a '. Złożona definicja manifestu zespołu nie pasuje do odwołania do zespołu. (Wyjątek HRESULT: 0x80131040) w Microsoft.Extensions.FileProviders.PhysicalFileError.CreateFileWatcher (string root) w Microsoft.AspNetCore.Hosting.Internal.HostingEnvironmentExtensions.Initialize> (IHostingEnvironment hostingEnvironment, String appplicationName, łańcuch contentRootPath, WebHostOptions opcji) w Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildHostingServices() w Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() w Program.Main (ciąg [] args) w/home/freek/aspnetcore/program.cs: linia 12 Przerwane
Oto treść Program.cs:
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World API!");
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(builder)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.Build();
host.Run();
}
}
Kod działa poprawnie na deskop z Ubuntu działa .NET Core 1.1, ale daje błąd na PI działa .NET Rdzeń 1.2.0 -beta-001291-00.
.net core 1.2.0-beta-001291-00 jest obecnie jedynym kompatybilnym z układem scalonym. Zależności projektowe nie mają podobnych wersji, więc w tej chwili jest to niemożliwe. Kiedy oficjalnie wydana zostanie następna wersja .net core, powrócę do tego. Udało mi się uzyskać serwer TCP, który nie ma zależności. Dzięki za wkład. –
Teraz z .net core 2.0 i odpowiednim sdk możesz publikować dla uzbrojenia bez problemów: dotnet publish -c Release -r linux-arm. –