用于VSCode的Omnisharp 1.9.0扩展无法识别DotNet Core的CSProj文件

时间:2017-05-16 07:40:54

标签: asp.net-core msbuild visual-studio-code omnisharp

当我尝试在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.Evaluator 4.ExpandAndLoadImports(String directoryOfImportingFile, ProjectImportElement importElement) at Microsoft.Build.Evaluation.Evaluator 4.EvaluateImportElement(字符串   directoryOfImportingFile,ProjectImportElement importElement)at   Microsoft.Build.Evaluation.Evaluator 4.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(IDictionary 2 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,IDictionary 2 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"创建的。

2 个答案:

答案 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