TypeLoadException:无法从程序集中加载类型IHttpResponseStreamWriterFactory

时间:2018-06-26 11:03:54

标签: c# asp.net-core

我正在构建aspnet核心应用程序。我想将我的MVC控制器之一保留在类库中(不在主项目之内)。

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

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

这是我尝试在浏览器中打开主项目时看到的错误:

  

TypeLoadException:无法从程序集“ Microsoft.AspNetCore.Mvc.Core,版本= 2.1.1.0,文化=中性,PublicKeyToken = adb9793829ddae60”中加载类型为“ Microsoft.AspNetCore.Mvc.Internal.IHttpResponseStreamWriterFactory”。

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

5 个答案:

答案 0 :(得分:3)

当我添加一个新的Nuget包(Microsoft.AspNetCore.Mvc.Versioning)时遇到了此问题,该包依赖于Microsoft.AspNetCore.Mvc.Core 2.2.0。但是,我的应用程序的其余部分使用的是较低版本。

要修复,请检查库的nuget画廊页面,然后检查依赖项。继续降低库的版本,直到兼容为止。

答案 1 :(得分:1)

我遇到了同样的问题。为了解决这个问题,我在项目中添加了这个nuget包:

Microsoft.AspNetCore.Mvc.Razor

答案 2 :(得分:0)

要解决此问题,我更新了两个项目(主项目和类库)都使用的库版本,并确保版本完全相同。之后,问题似乎消失了。

答案 3 :(得分:0)

如果您的应用程序位于.net core 2.0上,则这是一个问题,因为Microsoft.AspNetCore.Mvc.Core 2.1.1面向.net core 2.1。尝试删除此nuget的所有引用,然后安装针对.net core 2.0的nuget。

答案 4 :(得分:0)

我的问题也与版本不匹配有关。 一般是 CodeGeneration VS Razor。