温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - Azure Function, EF Core, Can't load ComponentModel.Annotations 4.2.0.0
c# entity-framework-core azure-functions

c# - Azure Function,EF Core,无法加载ComponentModel.Annotations 4.2.0.0

发布于 2020-03-27 12:00:40

我创建了几个.Net Standard 2.0库,通过控制台应用程序测试了执行情况,还进行了一些测试-一切都很好。

移至azure函数,并得到以下运行时错误: 在此处输入图片说明

然后,我尝试将该特定版本下载到API Function项目中: 在此处输入图片说明

我正在使用Visual Studio版本15.7.0预览5.0。我已将Azure Function更新为4.7 ...,因为控制台和测试项目均已完成-并且这些工作正常。

在这个地方呆了太多个小时..所以我希望分辨率不会太疯狂。Ef Core 2.1.0-rc1-final也参与其中。对Required,MaxLength,NotMapped使用数据注释。

图形错误说:Microsoft.EntityFrameworkCore:无法加载文件或程序集'System.ComponentModel.Annotations,版本= 4.2.0.0

查看更多

查看更多

提问者
codeputer
被浏览
66
Igne B 2018-06-10 01:42

我建议一旦启动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;
    }

}