So let me save some of your time and just straight up say this:
I did try regenerateing .csproj files.
With this in mind, here’s what happens to me:
I’m trying to use SpriteShapeController in my script. Unfortunately Omnisharp seems to be absolutely convinced that SpriteShapeController is not in UnityEngine.U2D namespace, even tho exploring sources for SpriteShape (Library/PackageCache/com.unity.2d.spriteshape@4.1.3/Runtime/) package proves that SpriteShapeController is indeed declared as a class in UnityEngine.U2D namespace and most importantly, Unity has no problem compiling my scripts. The .csproj file used for Sprite Shape package has the following line that seems to be referencing the file with file with SpriteShapeController definition:
<Compile Include="Library\PackageCache\com.unity.2d.spriteshape@4.1.3\Runtime\SpriteShapeController.cs" />
Yet it seems that only the classes defined in Library/PackageCache/com.unity.2d.spriteshape@4.1.3/Runtime/SpriteShape.cs are being recognised by Omnisharp.
I’m not sure if it’s Unity messing up something I’m missing in the project files, or is it just Omnisharp being a sloppy mess as usual.
Below is some info about versions of software I’m using:
OS: Gentoo Linux
Unity: 2020.1.8f1
Mono: 6.6.0.161
VS Code: 1.52.1
VS Code C# Extension: 1.23.8 (Omnisharp: 1.37.5, Roslyn: 3.9.0-2.20570.24)