【问题标题】:How to run .net Core app that depends on NuGet packages on Ubuntu如何在 Ubuntu 上运行依赖于 NuGet 包的 .net Core 应用程序
【发布时间】:2019-01-26 07:55:44
【问题描述】:

我有一个非常简单的 .net Core (2.1) 控制台应用程序,它使用几个 NuGet 包进行开发。当我编译(非独立)时,它的输出如下:

HelloWorld.deps.json 
HelloWorld.dll 
HelloWorld.pdb 
HelloWorld.runtimeconfig.dev.json 
HelloWorld.runtimeconfig.json

注意:为简单起见,我已将应用输出重命名为 HelloWorld

如果我使用以下命令运行控制台应用程序:

dotnet HelloWorld.dll

我得到以下输出:

错误:应用程序依赖项中指定的程序集 未找到清单(HelloWorld.deps.json): 包:'Microsoft.Azure.Amqp',版本:'2.3.0' 路径:'lib/netstandard1.3/Microsoft.Azure.Amqp.dll'

我了解它缺少开发期间通过 NuGet 引用的程序集之一。由于这不是一个独立的应用程序,并且需要在它运行的机器上安装 .net Core Runtime 或 SDK,我如何确保其他所需的 dll 存在?我本来希望任何非 dotnet 核心 dll 都在编译输出中,但它们不是。

提前感谢您的任何指点! (我是在 Ubuntu 上运行 .net Core 的新手)

【问题讨论】:

  • 这种情况只发生在生产环境还是开发环境中?
  • 我目前只在 Dev 方面工作——但这​​对问题有影响吗?
  • 看看this 答案和this 线程。是的,因为运行时和 sdk 确实存在差异,尤其是在加载 dll 时。

标签: c# ubuntu asp.net-core console-application nuget-package


【解决方案1】:

我很快意识到我做了什么!我已经复制了我项目的 /bin/ 目录的输出并尝试运行它。我实际上应该做的是从“发布”复制输出,其中包括应用程序所需的一切!嗬! :)

【讨论】:

    猜你喜欢
    • 2021-09-02
    • 2020-02-18
    • 2017-03-06
    • 2016-12-12
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    相关资源
    最近更新 更多