I don't recall installing it, but it's there. That must be the magic to make the Godot SDK references work.
I also have that plugin installed (that was the reason I upgraded to VS 2019 in the first place: the plugin doesn't support 2017...)
But perhaps my problem is, that the VS projects reference Godot 3.3, while I downloaded and installed 3.4? I couldn't find 3.3 (probably well hidden in their archives, as they want users to always use the latest and greatest...) I'll experiment with that. Ah, no, never mind, I found it! The target framework was set to 4.7.2 in C7.csproj. After I changed that to netstandard 2.0 (like the rest of the projects), it now finds the Godot DLLs ok, and compiles! (And runs...!)
Should I check in my changes to the project files, so that other people on Windows can also benefit from a fully functional VS project?
You will probably need to lend me a hand for that so I don't mess up the proper review process etc.
Also is there a way to diff the files I modified, before checking them in? In perforce I usually do a "right-click --> diff against head revision" for all files in my current change list, to verify that I'm not checking in something stupid or incomplete... Would be nice if there is a Git command for that as well. (So far I didn't get to installing a Git UI, only have the bare-knuckle CLI tools.)
The Godot SDK exposes to the C# environment the C++ objects in Godot, so whenever we're using a Godot namespace object it's *probably* just a bridge to the C++ code which may have some edge case implications we bump into but for the most part should be able to ignore. (e.g. We can't necessarily expect dropping all references to a Godot object to free its memory, but in most cases that probably doesn't matter.) So on export, Godot compiles the C# code into Mono dlls, then bundles the project folder and drops it alongside a precompiled redistributable Godot binary.
I'm not sure exactly how that C# to Godot bridge works or if that's even the right way to talk about it, but maybe that's why we cant seem to build directly from VSCode or VS.
I think, here I can contribute a bit knowhow. We often have to call C/C++ libraries from C# projects and it's actually quite easy (much easier than for example JNI (Java Native Interface), which we also have to use a lot). Microsoft provides two technologies for that, "P/Invoke" and "C++ CLI Interop". I'm pretty sure Godot simply uses this for providing a C# wrapper around their C++ native binaries. Probably they use P/Invoke as that is easier to use when it has to work on Windows, Linux and Mac at the same time.
Anyway, as we know now, that was not the reason why VS could not compile the project...
Godot can be configure to open VSCode (and I think Visual Studio) ...
Yep, I did this and it works fine. Language Server looks like it is meant for remote debugging (running Godot on one host and attaching your Visual Studio Debugger from another). Haven't figured out, yet, how it works, though... (It could be that remote debugging isn't supported by the free Visual Studio Community edition that I installed. Could also be that I just didn't find the right button, as I haven't used that feature for a couple of years...)