Rasberry PI上的Ubuntu上的ASP.NET核心应用程序

Fre*_*ier 5 c# ubuntu raspberry-pi .net-core asp.net-core

我已经在Raspberry PI 3上安装了Ubuntu Core 16.04,并通过使用此处的说明并使用与ARM兼容的.NET Core版本1.2.0-beta-001291-00设法在其上运行.NET Core控制台应用程序芯片.

当我使用基本的ASP.NET核心应用程序执行相同操作时,我收到以下错误:

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'System.Component.Primitives,Version = 4.2.0.0,Cultire = Neutral,PublicKeyToken = b03f5f7f11d50a3a'.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)Microsoft的Microsoft.AspNetCore.Hosting.Internal.HostingEnvironmentExtensions.Initialize>(IHostingEnvironment hostingEnvironment,String appplicationName,String contentRootPath,WebHostOptions选项)中的Microsoft.Extensions.FileProviders.PhysicalFileError.CreateFileWatcher(String root).位于/home/freek/aspnetcore/program.cs中的Program.Main(String [] args)中的Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()的AspNetCore.Hosting.WebHostBuilder.BuildHostingServices():第12行已中止

这是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();       
  }  
}
Run Code Online (Sandbox Code Playgroud)

代码在运行.NET Core 1.1的Ubuntu的桌面上正常运行但在运行.NET Core 1.2.0-beta-001291-00的PI上出错.

Woo*_*oot 2

微软一直在匹配其所有核心项目的版本号。大多数软件包开发人员都在效仿。因此 .net core 版本 1.1.0 大多数与该版本兼容的软件包也是版本 1.1.0

您还需要将项目依赖项更新为其测试版。如果您查看 project.json 并检查所有依赖项,请在 nuget.org 上查找它们并获取其最新的 beta 版本 (1.2.0-beta-something) 并将 project.json 版本号更新为您在 上找到的版本号nuget.org 它可能有效。毕竟它是测试版。

我的建议是在 Raspberry Pi 上安装 .net core 1.1.0,然后它应该可以正常工作。但是,如果您不能做到这一点,上述方法应该可行。