未定义或导入预定义类型“System.Object”.net 4.6

我正在使用MVC 5和.net 4.6来创建我的移动应用程序也可以连接的Web API。

每当我构建项目时,我都会收到数百个错误,告诉我我需要添加已经存在的引用,而且我的项目中的每个类型都不存在。 这些错误的一些例子:(不包括标题中的那个)

ErrorList

我尝试过的:

  • 通过nuGet添加了对System.Runtime的引用。 ( 这个问题的建议。)
  • 从project.json文件中的框架中删除了aspnetcore50。 (另一个建议, 这个问题 。)
  • 重新启动我的机器VS2015。
  • 浏览nuGet包管理器并将项目中的每个包升级到最新版本。
  • 实际上确保我可以在解决方案资源管理器的参考节点中看到引用。

更新: – 我的 project.json文件看起来像这样。 (根据Karls答案修改后。错误列表现在已降至十,但它们仍然与以前相同。)

 { "commands": { "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000" }, "dependencies": { "Microsoft.AspNet.Server.IIS": "1.0.0-beta5", "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5", "Microsoft.AspNet.Diagnostics": "1.0.0-beta5", "Microsoft.AspNet.Mvc": "6.0.0-beta5", "System.Runtime": "4.0.20-beta-23019" }, "exclude": [ "wwwroot", "node_modules", "bower_components" ], "frameworks": { "dnx451": { "frameworkAssemblies": { "System.Data": "4.0.0.0", "System.Data.DataSetExtensions": "4.0.0.0", "System.Data.Linq": "4.0.0.0" } } }, "publishExclude": [ "node_modules", "bower_components", "**.xproj", "**.user", "**.vspscc" ], "version": "1.0.0-*", "webroot": "wwwroot" } 

我在这里猜测一下,但是看起来很可疑你正在使用常规的System.Data.* dnx451东西,但没有任何东西来弥补dnxcore50 。 您是否也在瞄准核心版本,还是仅仅是项目创建的剩余部分? 如果你想要定位核心版本并仍然使用旧的System.Data.*东西,你需要从这些程序集中包装任何东西。

 #if DNX451 // Do some DNX451 specific stuff here #endif 

而另一种方式也是如此。

 #if DNXCORE50 // Do some DNXCORE50 specific stuff here #endif 

但是,如果你不考虑支持这个,我只是从框架列表中删除dnxcore50 ,你的错误可能会消失。

删除binobj并重建。

在我的情况下,我有一个项目仍然设置为针对测试版的dnx构建。 更改它以构建我在其他项目中使用的版本修复它。

对我来说,当我向我的解决方案添加新项目时,问题就出现了。 我重新构建了解决方案,错误消失了。

我在包管理器控制台上运行dotnet restore命令,问题解决了。