C# dotnet core 3.1独立应用程序失败,出现“0”;没有此类文件或目录";,我是否缺少一个依赖关系?

C# dotnet core 3.1独立应用程序失败,出现“0”;没有此类文件或目录";,我是否缺少一个依赖关系?,c#,linux,.net-core,nvidia-jetson,C#,Linux,.net Core,Nvidia Jetson,我只是想让dotnet core在NVidia Jetson Nano上运行 我在dotnet core中创建了一个简单的“hello world”应用程序,并将其打包为一个针对linux arm的独立应用程序。 当我把它放在我的Synology NAS上时,我可以直接导航到publish并键入./hellodontnetcore,应用程序就会运行,尽管有一些错误 /HelloDotNetCore/HelloDotNetCore/bin/Release/netcoreapp3.1/linux-a

我只是想让dotnet core在NVidia Jetson Nano上运行

我在dotnet core中创建了一个简单的“hello world”应用程序,并将其打包为一个针对linux arm的独立应用程序。 当我把它放在我的Synology NAS上时,我可以直接导航到publish并键入./hellodontnetcore,应用程序就会运行,尽管有一些错误

/HelloDotNetCore/HelloDotNetCore/bin/Release/netcoreapp3.1/linux-arm$ ./HelloDotNetCore
./HelloDotNetCore: /lib/libstdc++.so.6: no version information available (required by ./HelloDotNetCore)
./HelloDotNetCore: /lib/libstdc++.so.6: no version information available (required by ./HelloDotNetCore)
./HelloDotNetCore: /lib/libstdc++.so.6: no version information available (required by ./HelloDotNetCore)
./HelloDotNetCore: /lib/libstdc++.so.6: no version information available (required by ./HelloDotNetCore)
./HelloDotNetCore: /lib/libstdc++.so.6: no version information available (required by ./HelloDotNetCore)
Hello World!
我可以在我的树莓皮上运行它,就像sudo一样

/HelloDotNetCore/HelloDotNetCore/bin/Release/netcoreapp3.1/linux-arm $ sudo ./HelloDotNetCore
Hello World!
我已按照此处的教程“安装”了dotnet core: (它实际上不是安装,只是向bash公开二进制文件)

但是,尝试在我的NVidia Jetson上作为独立应用程序运行此应用程序会导致“没有此类文件或目录”。我已经尝试了老的明显的chmod+x和chmod 777技巧,以及像sudo一样跑步,但是没有其他线索来说明它在寻找什么

/code/HelloDotNetCore/HelloDotNetCore/bin/Release/netcoreapp3.1/linux-arm$ ./HelloDotNetCore
-bash: ./HelloDotNetCore: No such file or directory

因此,似乎这个独立应用程序中不存在应该打包的东西,但我不知道如何找出它需要什么。有什么想法吗?

我找到了罪犯。英伟达JeSON的运行时需要明确地设置为LINUX ARM64,而不是Linux ARM。如果使用dotnet命令从Jetson运行应用程序

dotnet run
它将把应用程序编译到相关的debug或release文件夹中,然后您可以使用

./HelloDotNetCore
然而,为了从visual studio“发布”应用程序,我必须从这里通过NuGet更新我的Microsoft.NETCore.Platform包 这会自动将我的.csproj文件更新为

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETCore.Platforms" Version="3.1.3" />
  </ItemGroup>

</Project>

我找到了罪犯。英伟达JeSON的运行时需要明确地设置为LINUX ARM64,而不是Linux ARM。如果使用dotnet命令从Jetson运行应用程序

dotnet run
它将把应用程序编译到相关的debug或release文件夹中,然后您可以使用

./HelloDotNetCore
然而,为了从visual studio“发布”应用程序,我必须从这里通过NuGet更新我的Microsoft.NETCore.Platform包 这会自动将我的.csproj文件更新为

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETCore.Platforms" Version="3.1.3" />
  </ItemGroup>

</Project>

在linux中,有一个内核会破坏操作系统,每个设备的内核都不同。因此,您可能需要更新内核。您能在Jetson上运行
uname-a
并发布输出吗?与
文件相同。/HelloDotNetCore
(与抱怨“没有这样的文件或目录”的文件相同)。``1 SMP PREEMPT Fri Oct 16 12:32:46 PDT 2020 aarch64 aarch64 aarch64 GNU/Linux``在Linux中,有一个内核会破坏操作系统,并且每个设备都不同。因此,您可能需要更新内核。您能在Jetson上运行
uname-a
并发布输出吗?与
文件相同。/HelloDotNetCore
(与抱怨“没有这样的文件或目录”的文件相同)。``1 SMP PREEMPT Fri Oct 16 12:32:46 PDT 2020 aarch64 aarch64 GNU/Linux```