类型加载异常:无法从程序集中加载IHttpResponseStreamWriterFactory类型。

10

我正在构建aspnet core应用程序。我想将我的MVC控制器之一保留在类库中(因此在主项目之外)。

为了做到这一点,我在类库项目中创建了一个名为“DataSync”的扩展Controller的新类。然后,在主项目的Startup.cs文件中引用了它:

services.AddMvc().AddApplicationPart(Assembly.Load(new AssemblyName("DataSync")));

在我尝试在浏览器中打开主项目时,出现了以下错误:

TypeLoadException: 无法从程序集'Microsoft.AspNetCore.Mvc.Core, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'中加载类型'Microsoft.AspNetCore.Mvc.Internal.IHttpResponseStreamWriterFactory'。

我应该在哪里寻找可能的问题?这里可能出了什么问题?

5个回答

4
当我添加一个新的Nuget包(Microsoft.AspNetCore.Mvc.Versioning)时,遇到了这个问题,它依赖于Microsoft.AspNetCore.Mvc.Core 2.2.0。然而,我的应用程序的其余部分使用较低版本。
为了解决这个问题,请检查库的nuget gallery页面,并检查Dependencies。不断降低库的版本,直到它兼容为止。

2
为了解决这个问题,我更新了主项目和类库所使用的库的版本,并确保它们的版本完全相同。之后,问题似乎就消失了。

1

0

如果您的应用程序是在 .net core 2.0 上,则存在问题,因为 Microsoft.AspNetCore.Mvc.Core 2.1.1 是针对 .net core 2.1 进行定位的。尝试删除此 nuget 的所有引用并安装针对 .net core 2.0 定位的 nuget。


0

我的问题也与版本不匹配有关。一般涉及到CodeGeneration和Razor。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接