我正在构建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”。
我应该在哪里寻找可能的问题?这里可能出什么问题了?
答案 0 :(得分:3)
当我添加一个新的Nuget包(Microsoft.AspNetCore.Mvc.Versioning)时遇到了此问题,该包依赖于Microsoft.AspNetCore.Mvc.Core 2.2.0。但是,我的应用程序的其余部分使用的是较低版本。
要修复,请检查库的nuget画廊页面,然后检查依赖项。继续降低库的版本,直到兼容为止。
答案 1 :(得分:1)
我遇到了同样的问题。为了解决这个问题,我在项目中添加了这个nuget包:
答案 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。