비주얼 스튜디오를 설치하게 되면 제어판에 “Microsoft .NET SDK from Visual Studio” 라는 이름으로 닷넷 SDK가 설치됩니다. 이 닷넷 SDK는 C:\Program Files\dotnet에 위치하고 있고요.
그런데 비주얼 스튜디오가 설치된 폴더의 하위 폴더에도 닷넷이 있는 것을 발견했습니다. 예를 들어서 C:\Program Files\Microsoft Visual Studio\2022\Community\dotnet\net8.0\runtime 폴더에 닷넷이 설치되어 있을 수 있습니다.
Visual Studio 내부 아키텍처에 관한 정확한 설명은 아무래도 Microsoft 관계자나 임직원 분 외에는 맥락을 잘 들어서 설명해주실 분은 없을 것 같습니다.
다만 개인적인 추측으로, Visual Studio가 아직은 Win32, COM, .NET Framework를 기반으로 실행되고 있기 때문에, 개발자 측면에서 사용하는 .NET SDK와는 별개로 Visual Studio 내부의 자체 .NET 런타임을 불러와서 연동해야 하는 상황에서 분리된 .NET 런타임을 따로 두고 있을 수 있겠다는 생각이 듭니다.
가령, .NET Core 버전 Windows Forms의 경우 Windows Forms 디자인 타임과 함께 사용하는 디자이너 서버를 %programfiles%\dotnet에 설치된 것과는 분리된 .NET 런타임으로 띄워야 한다던가 하는 상황이 예상됩니다.
.NET이 Core 이후로는 Java 런타임처럼 시스템에 강결합된 형태가 아니라, 필요에 따라 몇 벌이든 새롭게 독립된 런타임 환경을 형성할 수 있도록 바뀌었기 때문에 이와 같은 중복 구성을 사용하는 것 또한 자연스러워진 부분인 것 같습니다.