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

Kid*_*ode 45 .net c# asp.net asp.net-mvc json

我正在使用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"
}
Run Code Online (Sandbox Code Playgroud)

Tha*_*ghe 46

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

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

  • 类似的解决方案为我解决了这个问题 - 我已从“.vs”目录中删除了“DesignTimeBuild”目录(符号缓存)(删除 .suo 文件将丢失解决方案级别的设置、断点等)。当然,我还删除了“bin”和“obj”目录。手动将项目转换为新型 csproj 并删除解决方案配置后发生该错误。另请参阅 /sf/ask/3524041951/ 。 (9认同)
  • 我是在 2022 年 7 月补丁星期二之后遇到的,其中包括 .net 更新。仅仅重新启动 VS 并没有帮助,但是重命名 .vs 文件夹并重新启动 VS 就可以了。 (4认同)
  • 谢谢,其他解决方案对我不起作用,但这个解决方案对我有用。 (3认同)
  • 我的 applicationhost.config 文件中有一些我不想丢失的东西,所以我所做的就是关闭 VS,删除 .suo 文件,然后重新启动 VS,这对我来说也成功了。 (2认同)
  • 请说明删除该文件夹后可能会发生什么变化 (2认同)

gne*_*ric 39

删除binobj重建.

  • 此外,之后我还必须清理并构建解决方案。 (6认同)
  • 谢谢你,我还需要卸载和重新加载项目。 (5认同)
  • 在VS2019中首次打开解决方案后出现了同样的错误,这种方法无需重新加载解决方案即可工作,应作为答案。 (2认同)
  • 方便的脚本 **删除** `obj` 和 `bin` 文件夹...;) /sf/answers/52880341/ (2认同)

Nav*_*p11 15

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


Bìn*_*ang 14

我有同样的问题。我花了两天时间试图解决这个问题。我尝试重新安装 Visual Studio、清除 Visual Studio 缓存、卸载 Visual Studio 或再次设置 Windows 10 => 但没有成功。

您可以尝试执行以下对我有用的步骤:

  1. 关闭 Visual Studio
  2. 删除packages解决方案文件夹中的文件夹
  3. 打开 Visual Studio 并重建解决方案

祝你好运

  • 只需重新启动 VS 就可以解决我的问题,谢谢:)。 (3认同)

小智 9

我刚刚以管理员身份打开 Visual Studio,它成功了!

  • 尝试以管理员身份打开 VS,结果成功了。关了。。正常打开,仍然有效。不知道到底做了什么改变来修复它。 (3认同)

R. *_*oek 9

我遇到了同样的问题(VS2022)并尝试删除binenobj文件夹来解决它,但这不起作用。

因此,我通过右键单击有问题的项目并选择 来强制重新加载依赖项Load Entire Dependency Tree,这为我解决了问题!

加载整个依赖树


Kar*_*ren 3

我在这里猜测了一下,但看起来很可疑,您正在使用常规的System.Data.*东西dnx451,但没有任何东西可以弥补它dnxcore50。您是否也以核心版本为目标,或者它只是项目创建的剩余部分?如果您想以核心版本为目标并仍然使用旧的System.Data.*东西,您将需要像这样包装这些程序集中的任何内容。

#if DNX451
// Do some DNX451 specific stuff here
#endif
Run Code Online (Sandbox Code Playgroud)

反之亦然。

#if DNXCORE50
// Do some DNXCORE50 specific stuff here
#endif
Run Code Online (Sandbox Code Playgroud)

但如果您还没有考虑支持这一点,我会简单地dnxcore50从框架列表中删除,您的错误可能会消失。

  • 啊,删除 DNXCORE50 将错误列表减少到 10 个,重新启动后将其减少到 4 个。删除我之前添加的 System.Runtime 引用,然后删除所有错误...谢谢! (2认同)