【问题标题】:How to include asp.net core 2 dependencies in publish如何在发布中包含 asp.net core 2 依赖项
【发布时间】:2017-09-16 10:21:40
【问题描述】:

我有一个 asp.net 核心应用程序。我将项目发布到文件夹,然后将文件同步到 linux 生产服务器。

使用 asp.net core 1.x 一切正常。

升级到 2.0 后,使用 Microsoft.AspNetCore.All 元包,asp.net 核心依赖项不会发布到输出。 我使用<RuntimeIdentifiers>debian-x64</RuntimeIdentifiers> 创建了一个独立的发布,没有任何变化。

linux 服务器不应访问互联网,因此无法下载依赖项。

如何在发布的文件中包含所有依赖项?

【问题讨论】:

    标签: c# asp.net asp.net-core nuget publish


    【解决方案1】:

    .NET Core 2.0 有一个新的 linux-x64 运行时标识符,您应该为其发布。

    dotnet publish -r linux-x64
    

    【讨论】:

    • 有趣的是,使用 linux-x64 会导致发布进程添加文件。但我仍然无法运行已发布的应用程序。错误是: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. 即使发布了一个空的控制台应用程序,我也会收到错误消息。
    • 这确实很奇怪。它是否可以使用 CLI 在目标服务器上构建和运行控制台应用程序? (将“通用”linux-x64 分发版复制到目标机器并使用dotnet new console && dotnet run
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2018-04-12
    • 2017-05-28
    • 2020-01-27
    • 2014-04-04
    • 2019-02-05
    相关资源
    最近更新 更多