【问题标题】:Unable to run single file executable dotnet application on 64-bit ARM machine无法在 64 位 ARM 机器上运行单文件可执行 dotnet 应用程序
【发布时间】:2019-11-13 16:03:30
【问题描述】:

我正在尝试在 64 位 ARM 机器上运行 .NET Core 3 可执行文件。确切地说是 Pine64。我在 16.04 Ubuntu 上运行可执行文件并使用linux-arm RID,它构建得很好,但是当我尝试运行它时,我收到错误No such file or directory,即使我正在查看我面前的文件。

这是我正在运行的命令:

dotnet publish -c release -r linux-arm /p:PublishSingleFile=true -o $CWD/binaries/linux-arm -v q

如果我在没有单个文件的情况下构建它,那么它运行得非常好,但我需要它是单个文件可执行文件。

非常感谢任何帮助!

【问题讨论】:

  • 你到底是如何运行它的?请包括准确和完整的命令和输出。 pwdfind 怎么说?
  • 如果你想在 64 位 arm 机器上运行,你应该使用 linux-arm64 RID。
  • 该命令实际上只是./Bridge,输出仅显示No such file or directory
  • 这就是调试 ot 如此困难的原因,因为信息非常有限
  • find 说什么?当前目录中是否有一个名为(确切)Bridge(大小写很重要)的文件?

标签: c# .net .net-core msbuild


【解决方案1】:

我相信我找到了答案。所以我使用的是 RID linux-arm,如果您使用的是 32 位设备(如 RaspberryPi),这很好。 Pine64 是一个 64 位设备,我假设 linux-arm 是一个神奇的 RID,它同时支持 64 位和 32 位,因为 Microsoft docs 表明它就是那么容易(至少我是这么解释的它)。无论如何,我使用了linux-arm64 并且 BOOM 成功了。

【讨论】:

    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2014-11-02
    • 2017-07-31
    • 2012-07-04
    • 2023-02-14
    • 2010-10-01
    • 2016-05-07
    • 2010-10-18
    相关资源
    最近更新 更多