Unity happily lets you write C# but not structure it. Four ways to share code between proper Visual Studio projects and Unity — so your libraries stay testable and your Unity project stops being a big ball of mud.
After ~30 years and a few thousand projects, this is how I set up new .NET solutions: naming, project structure, .NET Standard vs Core choices — and the reasoning behind each habit. Not a book on architecture, just a clean, consistent setup.
88 projects across 22 solutions needed to become one solution, and Visual Studio crashed trying. So I brushed off my black belt in Perl regex and wrote a script that merges .sln files automatically.
The VS2010 conversion wizard is defect: it tries to rewrite your code when only the solution and project files actually need changing. Convert, then keep only the new .sln and .csproj — step-by-step guide inside.
OpenSim's native dependencies (SQLite, ODE, OpenJpeg) don't do 64-bit, and OpenSim.32BitLaunch.exe only helps from the command line. Here is the workaround to get full Visual Studio debugging on 64-bit Windows.