ASP.NET MVC 5 错误 - 无法加载文件或程序集 Microsoft.Bcl.AsyncInterfaces

ASP.NET MVC 5 error - Could not load file or assembly Microsoft.Bcl.AsyncInterfaces

提问人:Kieran 提问时间:11/16/2023 最后编辑:marc_sKieran 更新时间:11/16/2023 访问量:36

问:

我正在测试一些对新 up 类型的简单反射,这些类型在面向 .NET 4.5 的全新 ASP.NET MVC Web 应用程序中实现接口。我收到错误

无法加载文件或程序集“Microsoft.Bcl.AsyncInterfaces,Version=7.0.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”或其依赖项之一。“:”Microsoft.Bcl.AsyncInterfaces,版本 = 7.0.0.0,区域性 = 中性,公共密钥令牌 = cc7b13ffcd2ddd51

场景

我在 .NET 4.5 上创建了一个全新的 ASP.NET MVC 应用程序。我正在使用此版本进行向后兼容。我将以下代码添加到控制器中。控制器或端点无关紧要。所以只是为了测试,我把代码放在 的方法中。HomeControllerAbout

    public ActionResult About()
    {
        try
        {
            var testInterfaceType = typeof(ITest);
            var types = AppDomain.CurrentDomain.GetAssemblies()
                .SelectMany(s => s.GetTypes())
                .Where(p => !p.IsAbstract && !p.IsInterface && testInterfaceType.IsAssignableFrom(p));

            foreach (var type in types)
            {
                var instance = (ITest)Activator.CreateInstance(type);
                instance.Execute();
            }
        }
        catch (ReflectionTypeLoadException e)
        {
            var loaderExceptions = e.LoaderExceptions;
            // I get 5 of these LoaderExceptions, all the same. e.g 'Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces . . .'
        }

        return View();
    }

ITest是一个简单的接口,如下所示,位于 ASP.NET MVC 应用项目中。

public interface ITest
{
    void Execute();
}

因此,我已经实现了一个简单的实例(同样,该实例位于 ASP.NET MVC 应用程序项目中)

public class Test1 : ITest
{
    public void Execute()
    {
        Console.WriteLine("Hello from test 1");
    }
}

该解决方案构建并完美运行。一旦我点击方法中的代码,就会抛出错误。请记住,我没有添加任何对 MVC 应用程序 ASP.NET 新锅炉电镀的引用。我没有添加和Nuget包。在任何解决方案范围的搜索中都没有提到 Microsoft.Bcl.AsyncInterfaces 作为字符串。解决方案中没有任何名称包含“Microsoft.Bcl.AsyncInterfaces”的文件。没有对名称包含“Microsoft.Bcl.AsyncInterfaces”的任何项目的引用。HomeControllerAbout

据我所知,Microsoft.Bcl.AsyncInterfaces 是纯粹的 .NET Standard/Core 动物,那么为什么我在 MVC 5 / .NET 4.5 ASP.NET 看到这个错误?

我将不胜感激任何帮助。非常感谢。

C# 反射 ASP.NET-MVC-5

评论

0赞 Wiktor Zychla 11/16/2023
我会关闭,因为不可复制。在 VS 2022 中创建了一个全新的 .NET 4.5 MVC 应用程序。添加了您的代码。跑。也不例外。
0赞 Kieran 11/16/2023
@WiktorZychla - 您安装了哪些版本的 .Net Framework?您有 .Net 6 还是 .Net 7?我有一种感觉,这些可能是罪魁祸首。
0赞 Wiktor Zychla 11/17/2023
他们中的大多数。6 和 7 也是。

答: 暂无答案