gpt4 book ai didi

c# - VSCode OmniSharp/C# intellisense 看不到 Ionide/F# lib 模块/命名空间

转载 作者:行者123 更新时间:2023-11-30 15:13:37 30 4
gpt4 key购买 nike

我正在使用 VSCode-Insiders 和 OmniSharp C# intellisense 看不到 F# 类型/模块/命名空间。这是一个简单的项目:

module T1

let t = 42

和 C#:

using System;

namespace flowRunner
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(T1.t);
}
}
}

使用 dotnet build 通过命令行构建工作正常。 dotnet run 也可以正常工作。并且在 VS Code 中调试有效。但是智能感知显示:

intellisense problem

问题:我该如何解决这个问题? 我在更大的解决方案上遇到了类似的问题,当你周围有 1K 个错误但不是错误时,这非常烦人。

此外,我注意到这是从某个时间点开始发生的(假设使用某些新版本的 IDE 和/或扩展等)。

Omnisharp 日志(其中的一部分,但没有错误或警告):

[info]: OmniSharp.Services.DotNetCliService
DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 2 MSBuild instance(s)
1: Visual Studio Build Tools 2017 15.9.28307.812 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
2: StandAlone 16.0 - "C:\Users\dvitel\.vscode-insiders\extensions\ms-vscode.csharp-1.21.1\.omnisharp\1.34.2\.msbuild\Current\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to 'C:\Users\dvitel\.vscode-insiders\extensions\ms-vscode.csharp-1.21.1\.omnisharp\1.34.2\.msbuild\Current\Bin\MSBuild.exe'

此外,我没有在 Ionide 的日志下拉列表中找到任何条目(我很确定它之前存在过)。

项目配置为具有 TargetFramework net45。但我也尝试了 netcoreapp2.2 - 它没有用。

配置。 VS 代码 - 内部人士:

Version: 1.38.0-insider (user setup)
Commit: 185308c0dd317d73fe4c19dea347582dee9650de
Date: 2019-08-26T09:46:11.283Z
Electron: 4.2.9
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362

扩展(及其版本):

used extensions

.NET 核心 SDK:

PS C:\Users\dvitel\Documents\Visual Studio 2019\SO> dotnet --info
Version: 2.2.6
Commit: 7dac9b1b51

.NET Core SDKs installed:
2.0.0 [C:\Program Files\dotnet\sdk]
2.1.200 [C:\Program Files\dotnet\sdk]
2.2.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

最佳答案

我想我找到了答案。 Omnisharp 日志指出它使用 Standalone 16.0 MSBuild 实例。正如我在 github 上发现的那样,有些人处理了同样的问题。例如here这家伙解决了这个问题,但安装了带有 F Sharp 编译器的 VS Build tools 2017。

从他的 Ominsharp 日志中,选择了 Visual Studio Build Tools 2017 15.3.26730.15 实例。因此,我假设 随 omnisharp 一起提供的 msbuild 存在问题

不幸的是,我没有找到如何选择其他 MSBuild 实例或更改 MSBUILD_EXE_PATH 的正常方法(尝试了 omnisharp.json - 没有用),所以我只是重命名了 Standalone 16.0 的 .msbuild 文件夹。它使用了 VS MSBUild 实例,但给出了错误 "SDK 'Microsoft.NET.Sdk' specified could not be found" ,所以我运行了 VS Installer 并添加了 .NET Core 构建工具。

在这个智能工作正常之后 <ProjectReference Include="..\flow\flow.fsproj" />

works

关于c# - VSCode OmniSharp/C# intellisense 看不到 Ionide/F# lib 模块/命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57666251/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com