【问题标题】:.net core 2 application runs successfully but the published app does not run.net core 2 应用程序运行成功,但已发布的应用程序未运行
【发布时间】:2017-09-17 10:56:10
【问题描述】:

我正在尝试将我的 asp.net core 2 应用程序发布到 debian linux,但遇到了麻烦。

在尝试理解问题时,我在 bash(Linux 的 windows 子系统,Ubuntu)中创建了一个空的控制台应用程序,我成功运行它,我发布它并运行发布的文件,它失败了。

/mnt/c/Work/Temp/lin2# dotnet new Console
/mnt/c/Work/Temp/lin2# dotnet run
Hello World!
/mnt/c/Work/Temp/lin2# dotnet publish -c Release --self-contained --runtime linux-x64 -o /mnt/c/Temp/lin2
/mnt/c/Work/Temp/lin2# /mnt/c/Temp/lin2/lin2.dll

Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The module was expected to contain an assembly manifest.

<OutputType>Exe</OutputType> 已设置(默认情况下),但编译后的程序集具有 dll 文件扩展名。 我试图谷歌如何创建exe 文件,但大多数响应都与旧的project.json 格式有关。

【问题讨论】:

    标签: asp.net linux .net-core publish


    【解决方案1】:

    对于自包含部署,该工具将生成一个可执行文件,其中包含将加载运行时的主机和包含要运行的托管代码的 dll。您试图调用无法运行的 dll 文件。相反,应该有一个无扩展的 ELF 可执行文件:

    # /mnt/c/Temp/lin2/lin2
    

    【讨论】:

      猜你喜欢
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多