目前网上的常见解决方案主要包括
更改.NET Framework版本
回滚C#插件至无BUG的版本
更改csproj中.Net版本号与系统相同
这里写下我的解决方法,希望能帮到些人脱坑。
观察一通OmniSharpLog发现没有补全的原因omnisharp没有定位到.sln项目文件,在omnisharp命令里select project也不行,最后我就按照有补全的项目去改了.sln文件就好了,虽然看不懂.sln写的意思,但大致对比发现少了这俩句。
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{F693A868-DF12-5106-F016-2E0D6AF6AC6A}"
EndProject
总的.sln文件:
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{F693A868-DF12-5106-F016-2E0D6AF6AC6A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F693A868-DF12-5106-F016-2E0D6AF6AC6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F693A868-DF12-5106-F016-2E0D6AF6AC6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F693A868-DF12-5106-F016-2E0D6AF6AC6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F693A868-DF12-5106-F016-2E0D6AF6AC6A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
具体啥原因也不清楚,总之omnisharp最后定位到了这个project,vscode左下角就能看到.sln文件了
example