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

时间:2015-07-04 19:02:02

标签: c# asp.net .net json asp.net-mvc

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

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

ErrorList

我尝试了什么:

  • 通过nuGet添加了对System.Runtime的引用。 (来自this question的建议。)
  • 从project.json文件中的框架中删除了aspnetcore50。 (另一项建议,this question。)
  • 重启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"
}

13 个答案:

答案 0 :(得分:19)

删除binobj并重建。

答案 1 :(得分:11)

这浪费了我很多时间。关闭视觉工作室。删除.vs文件夹,然后重新启动Visual Studio。一切都应该正常工作。

通常在更改分支或合并分支时会发生这种情况。

答案 2 :(得分:7)

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

答案 3 :(得分:3)

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

答案 4 :(得分:2)

我在这里猜测了一下,但您对System.Data.*使用常规dnx451内容感到怀疑,但dnxcore50没有任何东西可以弥补它System.Data.* 1}}。您是否也在瞄准核心版本,还是仅仅是项目创建的剩余部分?如果您想要定位核心版本并仍然使用旧的#if DNX451 // Do some DNX451 specific stuff here #endif 内容,那么您需要从这些程序集中包装任何内容。

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

反之亦然。

dnxcore50

但是,如果你没有考虑支持这个,我只需从框架列表中删除{{1}},你的错误可能会消失。

答案 5 :(得分:1)

VS2019 解决方案文件放在一个驱动器文件夹下,移动到一个驱动器外的另一个文件夹,修复了这个问题。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

具有相同的错误,我的项目在Visual Studio 2017中打开时无法编译,但是在Visual Studio 2015中编译(已同时安装两个VS版本)。 :-o

答案 8 :(得分:0)

就我而言,这是不同的。 首先检查 System.Runtime 参考是否已添加到您的项目中。如果已将其添加到您的项目中,请按照以下步骤操作。

  1. 从项目中打开引用,然后选择System.Runtime程序集。
  2. 右键单击System.Runtime并选择属性。
  3. SpecificVersion 的值从False更改为True。

注意:就我而言,我正在使用 Visual Studio 2019 Project Framework版本-4.6.2

答案 9 :(得分:0)

就我而言,以下是我遵循的步骤;

  1. 我删除了bin和obj并进行了重建。 (无效)
  2. 卸载项目。 (它导致“找不到资产文件project.assets.json。运行NuGet包还原”)
  3. 我通过Visual Studio 2017运行了dotnet restore命令>>工具>> NuGet程序包管理器>>程序包管理器控制台。
  4. 重建解决方案。 (问题已解决)

答案 10 :(得分:0)

花了将近2天的时间来修复。尝试过几次 VS卸载\重新安装,但无效。

什么最终对我有用...

Ran VS Installer维修。 由于错误,我不得不手动卸载所有实例 MS .NET Core SDK-2.1xxx

Ran VS Installer维修。 没有错误。 删除 bin obj 重建

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

答案 11 :(得分:0)

我刚刚打开Visual Studio“以管理员身份”,它起作用了!

答案 12 :(得分:0)

我有同样的问题。我花了2天的时间解决此问题。我尝试重新安装视觉效果,清除缓存视觉效果,再次卸载视觉效果或再次设置Windows 10 =>但不成功。

您可以尝试执行以下步骤,对我来说成功

  1. 关闭视觉
  2. 在解决方案文件夹中删除软件包文件夹
  3. 开放式视觉和重建解决方案

祝你好运