Today, Unity builds C# scripts by directly running the compiler on those source files. Unity generates MSBuild project files as well (e.g. Assembly-CSharp.csproj), but these are basically just for editing the code and verifying that the code builds - Unity does not actually use the dlls produced by these projects. Has there been any consideration in switching things up to have the MSBuild project(s) be the only way that the code is built, and ingesting the output assemblies into the Unity project? I feel like this should be the intended direction to take things at this point because: C# is basically the only language supported in Unity at this point. MSBuild is now cross platform. The C# compiler is now cross platform. NuGet is now cross platform. Visual Studio is cross platform (via Visual Studio for Mac). There are a bunch of obvious advantages to having my Unity scripts managed completely by an MSBuild project: It becomes trivial to consume OSS via NuGet (it's just an MSBuild PackageReference), where 99.9% of the .NET ecosystem lives, which is very relevant these days with the move to the modern scripting runtime. It becomes trivial to share private source between my Unity app and my non-Unity app (it's just an MSBuild ProjectReference). It becomes trivial to take advantage of the entire developer platform built around .NET and C#. So - where are things headed in relation to this?