【问题标题】:Dependency assemblies not found on MacOS despite the "additionalProbingPaths" are set尽管设置了“additionalProbingPaths”,但在 MacOS 上找不到依赖程序集
【发布时间】:2022-01-14 12:09:00
【问题描述】:

#UPD:已解决。

我有我的 .NetCore 2.1 应用程序,其中一些引用的 dll 没有放在常见的地方。所以我在项目中添加了一个runtimeconfig.template.json 文件,内容如下:

{
    "additionalProbingPaths": [
        "NameOfSubfolderWithDlls"
    ]
}

它会导致在构建项目时生成MyAppName.runtimeconfig.json(其中包含此块)。 而且效果很好 - 当我在 Windows 上运行应用程序时,会找到 dll。

但是!当我尝试在 MacOS 上运行我的应用程序时,看起来 Mac 上的 dotnet 忽略(或看不到)MyAppName.runtimeconfig.json,因为我收到了这个错误:

An assembly specified in the application dependencies manifest (MyAppName.deps.json) was not found

请帮忙分析一下,问题的原因是什么?

【问题讨论】:

  • PS:作为实验,我已将我的应用程序从 .NetCore 2.1 更新到 .Net 5.0(并在 Mac 上安装了 .Net 5) - 它没有影响问题

标签: c# .net .net-core


【解决方案1】:

我想通了。实际上问题不在于 MacOS 的特殊性。但只是以不同的方式设置了“当前目录”env.variable(巧合的是,我的 Windows 和 Mac 机器上的方式不同)。并作为“附加探测路径”

让你指定一个相对路径,但它是基于 当前目录,而不是应用程序目录。所以它可以指向随机 位置取决于应用程序的启动方式。

(来自这里:https://github.com/dotnet/runtime/issues/48792#issuecomment-801913304) ,所以 dotnet 在某个奇怪的地方搜索了我的其他 dll。

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 2017-01-12
    • 2018-11-27
    • 1970-01-01
    • 2021-01-18
    • 2018-03-23
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多