错误VS代码dotnet核心C#:“无法找到类型或名称空间名称'系统',但构建成功
问题描述:
当试图在Visual Studio代码上使用C#DotNet核心MVC应用程序时,我有很多麻烦让视觉工作室代码工作。它很难找到与C#相关的任何东西,甚至标记为“使用系统”;作为无效,说它找不到它。错误VS代码dotnet核心C#:“无法找到类型或名称空间名称'系统',但构建成功
但是,当我运行dotnet构建,它成功没有警告或错误,项目运行。
我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"
}
}
}
任何想法?我真的用这个拉我的头发。
答
有时C#for Visual Studio代码(由OmniSharp提供支持)会变得困惑。
尝试重新启动OmniSharp。这里有两种方法:
- 关闭并重新打开Visual Studio代码,或
- 打开命令托盘和类型
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“是。我将继续寻找为什么这个问题,但我现在发布这个答案,以防别人正在处理这个问题。
我确实尝试重新启动omnisharp,无济于事。我甚至尝试重新安装整个.net核心SDK和Runtime。我觉得这个项目在某个地方有点怪,但我看不到它。我希望我可以调试omnisharp告诉我为什么它找不到系统... – MStudley