Tôi đã cài đặt Ubuntu Core 16.04 trên Raspberry PI 3 và quản lý để có ứng dụng .NET Core console chạy trên đó bằng cách sử dụng hướng dẫn here và sử dụng .NET Core phiên bản 1.2 .0-beta-001291-00 tương thích với chip ARM.Ứng dụng ASP.NET Core trên Ubuntu trên Rasberry PI
Khi tôi làm điều tương tự với một ứng dụng ASP.NET cốt lõi cơ bản tôi nhận được lỗi sau:
Unhandled Exception: System.IO.FileLoadException: Không thể tải tập tin hoặc lắp ráp 'System.Component. Nguyên thủy, Phiên bản = 4.2.0.0, Cultire = Neutral, PublicKeyToken = b03f5f7f11d50a3a '. Định nghĩa tệp kê khai của assembly không khớp với tham chiếu assembly. (ngoại lệ từ HRESULT: 0x80131040) tại Microsoft.Extensions.FileProviders.PhysicalFileError.CreateFileWatcher (String root) tại Microsoft.AspNetCore.Hosting.Internal.HostingEnvironmentExtensions.Initialize> (IHostingEnvironment hostingEnvironment, String appplicationName, String contentRootPath, WebHostOptions tùy chọn) tại Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildHostingServices() tại Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() tại Program.Main (string [] args) trong/home/Freek/aspnetcore/program.cs: dòng 12 Bị hủy bỏ
Dưới đây là nội dung của 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();
}
}
Mã này chạy tốt trên deskop với Ubuntu chạy NET Lõi 1.1 nhưng cung cấp cho các lỗi trên một PI chạy NET Lõi 1.2.0 -beta-001291-00.
.Net core 1.2.0-beta-001291-00 hiện là phiên bản duy nhất tương thích với chip cánh tay. Các phụ thuộc của dự án không có các phiên bản tương tự nên hiện tại không thể. Khi phiên bản tiếp theo của .net core được chính thức phát hành, tôi sẽ xem lại. Tôi quản lý để có được một máy chủ TCP đi mà không có phụ thuộc. Cảm ơn vì đầu vào của bạn. –
Bây giờ với .net core 2.0 và sdk tương ứng, bạn có thể xuất bản cho cánh tay mà không có vấn đề: dotnet xuất bản -c Release -r linux-arm. –