已发布的 Azure Function 中缺少 System.Text.Json

问题描述 投票:0回答:1

我最近合并了 2 个项目(由 Azure Functions 和通用库组成的服务),我必须升级一些依赖项以修复合规性和兼容性问题。

函数应用程序已正确部署,但在调用函数时我得到以下信息:

Exception while executing function: ActiveTestEventGenV2 Could not load file or assembly 'System.Text.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. 

我将解决方案中的所有项目更新为目标

net6.0
并且我正在使用 Azure Functions V4。

我对正在发生的事情有一个模糊的概念;我对

System.Text.Json
有直接依赖,并且对相同的版本也有传递依赖,但版本不同。

我不完全理解这个问题。请链接解释该问题的任何文档、博客或视频。 我在下面链接了一个博客,但我认为该博客不适用于我的错误,因为我不针对较旧的 dotnet 版本 - 我的所有项目都针对

net6.0 
.

以下是我尝试解决该问题的全部内容:

  • 我阅读了此博客并添加了 RestoreProjectStyle,但无法解决问题:https://www.hanselman.com/blog/referencing-net-standard-assemblies-from-both-net-core -和网络框架

  • 显式添加对每个 csproj 文件的依赖关系,但不起作用。

  • 在解决方案的通用 Directory.Build.targets 中添加了显式依赖项,但不起作用。

  • 添加了一个构建脚本,可自动将 dll 复制到发布目录。 dll已复制,但没有解决问题。函数应用程序仍然遇到上述问题。

  • 我找不到如何在 Visual Studio 2022 中设置“复制本地”(基本上强制将本地 dll 复制到最终版本)。

  • 我将csproj选项设置为true,不起作用!

  • 使用Visual Studio尝试合并依赖关系,它没有显示多个版本的

    System.Text.Json

我可以得到一些帮助吗?

当我写这个问题时,我计划运行依赖分析器并查看我的解决方案正在使用哪个版本的

System.Text.Json

c# .net .net-core dll azure-functions
1个回答
0
投票

这与 Azure Function 清理它认为不必要的 dll 以减少部署大小有关。

似乎有效的是在 PropertyGroup 中添加

<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
标志 - 请注意,这可能会增加您的函数大小并增加您的冷启动时间。由于我的用例,我并不太关心它,但是还有另一种方法可以将依赖项列入白名单。这是一篇解释这一点的博客文章:https://bryanknox.github.io/2022/07/15/functionsskipcleanoutput-and-functionspreserveddependency.html.

© www.soinside.com 2019 - 2024. All rights reserved.