gpt4 book ai didi

azure - 在 Azure Function 中找不到注释 System.ComponentModel.Annotations

转载 作者:行者123 更新时间:2023-12-03 05:27:03 29 4
gpt4 key购买 nike

我有一个简单的 Azure 函数,只需将一些 json 反序列化为具有注释的对象

我收到错误

'System.ComponentModel.Annotations, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

我该如何解决这个问题?这是使用 Azure Functions v3 的 .NET Core 3.1

我正在使用新的项目模板,因此这是 Azure Functions

我不确定如何实现涉及程序集绑定(bind)重定向的修复,因为这是一个 Azure 函数,其中 appsettings.json 文件不支持 .config

最佳答案

我有 3 种方法。

方式-1这是 .NET 5 进程外函数的问题。因此,您可以将项目从 .NET Core 3.1 升级到 .NET 5.0,或者将所有依赖包降级到 3.1。您可以找到更多相关信息 here

WAY-2如果这不起作用,请尝试在您的 azure 函数中运行它。它将把任何程序集重定向到现有版本。

public class FunctionsAssemblyResolver
{
public static void RedirectAssembly()
{
var list = AppDomain.CurrentDomain.GetAssemblies().OrderByDescending(a => a.FullName).Select(a => a.FullName).ToList();
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
}

private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
var requestedAssembly = new AssemblyName(args.Name);
Assembly assembly = null;
AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
try
{
assembly = Assembly.Load(requestedAssembly.Name);
}
catch (Exception ex)
{
}
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
return assembly;
}
}

WAY-3尝试将以下代码添加到项目的 .csproj 文件中:

<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

这会强制构建过程在输出目录中创建一个具有所需绑定(bind)重定向的 .dll.config 文件。

您可以在SO线程Thread1中找到更多信息, Thread2其中讨论了类似的相关问题。

关于azure - 在 Azure Function 中找不到注释 System.ComponentModel.Annotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68068273/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com