VS代码中的错误dotnet core C#:“无法findtypes或名称空间名称”,但构build成功

当尝试在C#DotNet Core MVC应用程序上使用Visual Studio代码时,在使Visual Studio代码正常工作时遇到了很多麻烦。 在find与C#有关的任何东西时,都遇到了麻烦,即使是“使用系统”也是如此。 作为无效,说它找不到它。

但是,当我运行dotnet构build,它成功没有警告或错误,并运行项目。

我的project.json:

{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" }, "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0", "Microsoft.EntityFrameworkCore.Design": { "version": "1.1.0", "type": "build" }, "Microsoft.AspNetCore.Mvc": "1.1.0", "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", "Microsoft.Extensions.Configuration.Json": "1.1.0", "Microsoft.Extensions.Logging": "1.1.0", "Microsoft.Extensions.Logging.Console": "1.1.0", "Microsoft.Extensions.Logging.Debug": "1.1.0", "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", "Microsoft.AspNetCore.StaticFiles": "1.1.0" }, "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" } }, "imports": "dnxcore50" } } } 

有任何想法吗? 我真的用这个拉我的头发。

有时Visual Studio代码的C#(由OmniSharp提供支持)变得困惑。

尝试重新启动OmniSharp。 这里有两种方法:

  1. 关闭并重新打开Visual Studio代码或
  2. 打开Command Pallet并键入Restart Omnisharp

如果我们从命令行而不是从Visual Studio代码中恢复依赖关系,OmniSharp往往会变得困惑。

好吧,我已经找出是什么原因造成了这个问题。 我引用了project.json文件框架部分的错误导入。

这个:

 "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" } }, "imports": "dnxcore50" } } 

应该是这样的:

 "frameworks": { "netcoreapp1.1": { "imports": [ "dotnet5.6", "portable-net45+win8" ] } } 

我在一个Windows 8的机器上,出于某种原因“dnxcore50”是无效的,但“dotnet5.6”和“portable-net45 + win8”是。 我将继续研究这个问题的原因 ,但现在我发布这个答案,以防别人正在处理这个问题。