【问题标题】:Visual Studio Code C# Intellisense Not WorkingVisual Studio Code C# Intellisense 不工作
【发布时间】:2019-06-10 16:35:31
【问题描述】:

我遇到了 Intellisense 无法完全使用 C# 的问题。对于某些事情它确实有效(例如:尝试使用 using 语句),而对于其他事情它不起作用(例如:Linq 查询或在 startup.cs 文件中 app.{enter whatever} 什么都不显示)。但对于我的其他同学来说,它确实为他们展示了所有这些。 Omnisharp 的绿色火焰表示服务器正在运行并且我的语言设置为 C#。抱歉,我不完全知道提供 Omnisharp 日志的最佳方式,它太大而无法截图,而且我是第一次发帖。编辑:当某些东西不起作用时,也没有任何下划线,我不知道这是否有帮助,但我也注意到我的其他同学在使用 VS 代码时会发生这种情况

    Starting OmniSharp server at 1/16/2019, 8:30:58 AM
    Target: c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master

OmniSharp server started.
    Path: C:\Users\{NAME}\.vscode\extensions\ms-vscode.csharp-1.17.1\.omnisharp\1.32.8\OmniSharp.exe
    PID: 12540

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on Windows 6.2.9200.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 3 MSBuild instance(s)
            1: Visual Studio Build Tools 2017 15.9.28307.145 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
            2: Visual Studio Community 2017 15.9.28307.222 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin"
            3: StandAlone 15.0 - "C:\Users\{NAME}\.vscode\extensions\ms-vscode.csharp-1.17.1\.omnisharp\1.32.8\msbuild\15.0\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: Visual Studio Build Tools 2017 15.9.28307.145 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in 'c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.WorkspaceInitializer
        Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
[info]: OmniSharp.MSBuild.ProjectSystem
        No solution files found in 'c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for 'c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\LinqSkeleton.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in 'c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location 'c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master' on host 9952.
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\LinqSkeleton.csproj
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file 'c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\LinqSkeleton.csproj'.
c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\LinqSkeleton.csproj(1,1)
Microsoft.Build.Exceptions.InvalidProjectFileException: Could not load SDK Resolver. A manifest file exists, but the path to the SDK Resolver DLL file could not be found. Manifest file path 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\SdkResolvers\Microsoft.Build.NuGetSdkResolver\Microsoft.Build.NuGetSdkResolver.xml'. SDK resolver path: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\NuGet\Microsoft.Build.NuGetSdkResolver.dll  c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\LinqSkeleton.csproj
   at Microsoft.Build.Shared.ProjectFileErrorUtilities.VerifyThrowInvalidProjectFile(Boolean condition, String errorSubCategoryResourceName, BuildEventFileInfo projectFile, Exception innerException, String resourceName, Object[] args)
   at Microsoft.Build.BackEnd.SdkResolution.SdkResolverLoader.TryAddAssemblyFromManifest(String pathToManifest, String manifestFolder, List`1 assembliesList, ElementLocation location)
   at Microsoft.Build.BackEnd.SdkResolution.SdkResolverLoader.FindPotentialSdkResolvers(String rootFolder, ElementLocation location)
   at Microsoft.Build.BackEnd.SdkResolution.SdkResolverLoader.LoadResolvers(LoggingContext loggingContext, ElementLocation location)
   at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.Initialize(LoggingContext loggingContext, ElementLocation location)
   at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.ResolveSdk(Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive)
   at Microsoft.Build.BackEnd.SdkResolution.CachingSdkResolverService.<>c__DisplayClass3_0.<ResolveSdk>b__0(String key)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Build.BackEnd.SdkResolution.CachingSdkResolverService.ResolveSdk(Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive)
   at Microsoft.Build.Evaluation.Evaluator`4.ExpandAndLoadImportsFromUnescapedImportExpressionConditioned(String directoryOfImportingFile, ProjectImportElement importElement, List`1& projects, SdkResult& sdkResult, Boolean throwOnFileNotExistsError)
   at Microsoft.Build.Evaluation.Evaluator`4.ExpandAndLoadImports(String directoryOfImportingFile, ProjectImportElement importElement, SdkResult& sdkResult)
   at Microsoft.Build.Evaluation.Evaluator`4.EvaluateImportElement(String directoryOfImportingFile, ProjectImportElement importElement)
   at Microsoft.Build.Evaluation.Evaluator`4.PerformDepthFirstPass(ProjectRootElement currentProjectOrImport)
   at Microsoft.Build.Evaluation.Evaluator`4.Evaluate(ILoggingService loggingService, BuildEventContext buildEventContext)
   at Microsoft.Build.Evaluation.Project.Reevaluate(ILoggingService loggingServiceForEvaluation, ProjectLoadSettings loadSettings, EvaluationContext evaluationContext)
   at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(ILoggingService loggingServiceForEvaluation, ProjectLoadSettings loadSettings, EvaluationContext evaluationContext)
   at Microsoft.Build.Evaluation.Project.Initialize(IDictionary`2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectLoadSettings loadSettings, EvaluationContext evaluationContext)
   at Microsoft.Build.Evaluation.Project..ctor(String projectFile, IDictionary`2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectCollection projectCollection, ProjectLoadSettings loadSettings, EvaluationContext evaluationContext)
   at Microsoft.Build.Evaluation.ProjectCollection.LoadProject(String fileName, IDictionary`2 globalProperties, String toolsVersion)
   at OmniSharp.MSBuild.ProjectLoader.EvaluateProjectFileCore(String filePath)
   at OmniSharp.MSBuild.ProjectLoader.BuildProject(String filePath)
   at OmniSharp.MSBuild.ProjectFile.ProjectFileInfo.Load(String filePath, ProjectLoader loader)
   at OmniSharp.MSBuild.ProjectManager.LoadOrReloadProject(String projectFilePath, Func`1 loader)

[fail]: OmniSharp.MSBuild.ProjectManager
        Attemped to update project that is not loaded: c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\LinqSkeleton.csproj
[info]: OmniSharp.OmniSharpWorkspace
        Miscellaneous file: c:\Users\{NAME}\Documents\{NAME}\CSharp\MusicLinqSkeleton-master\Program.cs added to workspace

【问题讨论】:

  • 我不太确定 OmniSharp 是什么,但根据此处输出的错误,您的项目文件似乎有问题;这可能会固有地导致您的智能感知出现一些问题。 InvalidProjectFileException 是编译器试图告诉你你的 .csproj 文件在某种程度上是无效的。您的代码是否在某种版本控制系统中,您可以恢复到项目的先前版本和/或查看发生了什么变化?
  • 即使我创建一个新文件夹并为其执行 dotnet new mvc,智能感知问题仍然存在。
  • 我对此的完全理解充其量是模糊的,但我阅读了几次警告和错误,最后我发现(这里有一些真正的技术术语)无论是在寻找omnisharp 还是 intellisense或者任何决定这些东西在 Visual Studio 2017 中的东西。我卸载了 Visual Studio 2017 并重新安装了 VS 代码的 C# 扩展,现在它可以工作了

标签: c# visual-studio-code intellisense omnisharp


【解决方案1】:

当我遇到同样的问题时,帮助我的是来自here 的评论。

解决问题的步骤

打开文件:

cd /usr/share/dotnet/sdk/$(dotnet --version)/Sdks/Microsoft.NET.Sdk/Sdk
sudo vim Sdk.props

找一条线:

<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />

并替换为该命令的输出:

echo "<Import Project=\"/usr/share/dotnet/sdk/$(dotnet --version)/Current/Microsoft.Common.props\" />"
# <Import Project="/usr/share/dotnet/sdk/2.2.402/Current/Microsoft.Common.props" />

此外,我从项目目录中删除了 obj 目录并运行 dotnet restore 以确保一切都是新鲜的。


您可以做的另一件事是安装最新的 mono。您可以在official download page 上找到您的分发说明。

【讨论】:

    猜你喜欢
    • 2015-08-04
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2016-09-17
    • 2012-10-23
    • 2019-11-05
    • 2018-03-22
    相关资源
    最近更新 更多