当我尝试在visual studio代码中打开dotNet核心1.1 mvc项目时,csproj文件无法识别,我无法从项目中获得任何符号。
VSCode显示[warn]消息,说明"有些项目无法加载,请查看输出以获取更多详细信息" 。在输出中,我收到以下消息:
[warn]:OmniSharp.MSBuild.MSBuildProjectSystem 无法处理项目文件&c; \ Users \ humam \ Projects \ AM \ AM.csproj'。 C:\ Users \用户,私自\项目\ AM \ AM.csproj(1,1) Microsoft.Build.Exceptions.InvalidProjectFileException:导入 project" C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017 \编译工具\的MSBuild \ SDKS \ Microsoft.NET.Sdk.Web \ SDK \ Sdk.props" 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。 c:\ Users \ humam \ Projects \ AM \ AM.csproj at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject(字符串 errorSubCategoryResourceName,IElementLocation elementLocation,String resourceName,Object [] args)at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject(IElementLocation elementLocation,String resourceName,Object arg0)at Microsoft.Build.Evaluation.Evaluator
4.ExpandAndLoadImportsFromUnescapedImportExpression(String directoryOfImportingFile, ProjectImportElement importElement, String unescapedExpression, Boolean throwOnFileNotExistsError, List
1安培; 进口) Microsoft.Build.Evaluation.Evaluator4.ExpandAndLoadImports(String directoryOfImportingFile, ProjectImportElement importElement) at Microsoft.Build.Evaluation.Evaluator
4.EvaluateImportElement(字符串 directoryOfImportingFile,ProjectImportElement importElement)at Microsoft.Build.Evaluation.Evaluator4.PerformDepthFirstPass(ProjectRootElement currentProjectOrImport) at Microsoft.Build.Evaluation.Evaluator
4.评估()at Microsoft.Build.Evaluation.Project.Reevaluate(ILoggingService loggingServiceForEvaluation,ProjectLoadSettings loadSettings)at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(ILoggingService loggingServiceForEvaluation,ProjectLoadSettings loadSettings)at Microsoft.Build.Evaluation.Project.Initialize(IDictionary2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectLoadSettings loadSettings) at Microsoft.Build.Evaluation.Project..ctor(String projectFile, IDictionary
2 globalProperties,String toolsVersion,String subToolsetVersion,ProjectCollection projectCollection, ProjectLoadSettings loadSettings)at Microsoft.Build.Evaluation.ProjectCollection.LoadProject(字符串 fileName,IDictionary2 globalProperties, String toolsVersion) at OmniSharp.MSBuild.ProjectFile.ProjectFileInfo.Create(String projectFilePath, String solutionDirectory, ILogger logger, MSBuildOptions options, ICollection
1诊断,布尔值 isUnityProject)at OmniSharp.MSBuild.MSBuildProjectSystem.CreateProjectFileInfo(字符串 projectFilePath,Boolean isUnityProject)
任何想法可能是这个问题的根源?
我的环境是Windows 10包括用于VSCode的DotNet Core SDK 1.1.0,VSCode 1.12.2和Omnisharp 1.9.0 C#扩展以及其他扩展。
该项目是使用dotnet core命令" dotnet new mvc --auth Individual -o AM"创建的。
答案 0 :(得分:2)
OmniSharp似乎加载了目前不支持.NET Core项目的VS 2017构建工具:https://github.com/Microsoft/msbuild/issues/1697。尝试使用Web开发/跨平台工作负载安装VS 2017版本,或在项目中创建包含以下内容的omnisharp.json
文件:
{
"msbuild": {
"msbuildextensionspath": "C:\\Program Files\\dotnet\\sdk\\1.0.4\\Sdks"
}
}
然后您需要通过命令行dotnet restore
(因为构建工具也不包含NuGet版本)并在VSCode中重新加载项目。
答案 1 :(得分:1)
在创建.NET core 3项目时,我偶然遇到了同样的问题。
我的omnisharp.json文件:
{
"MSBuild": {
"UseLegacySdkResolver": true
}
}
和我的global.json(可选,通过“ dotnet --list-sdks”检查您的sdk版本)
{
"sdk": {
"version": "3.0.100"
}
}
来源:https://github.com/OmniSharp/omnisharp-vscode/issues/3287#issuecomment-536180721