Skip to content

Test_build msvc2026 projects.ps1

Mr-Luckyowl edited this page Jul 28, 2026 · 4 revisions

Test Report: build-msvc2026-projects.ps1

Target Project: microsoft/terminal @ v1.25.1322.0

1. Environment and System Configuration

  • Host OS: Windows 11 [24H2] Professional x64
  • Compiler Engine: Visual Studio 2026 Community (v18.0 / MSVC v145)
  • Installation Path: E:\software\MicrosoftVisualStudio2026\18\Community\
  • Enforced SDK Platform: .NET SDK 9.0.316
  • Global SDK Root: C:\Program Files\dotnet\sdk\9.0.316\
  • Windows SDK Version: 10.0.26100.0
  • Build Tool Binary: Common7\IDE\devenv.com

2. Problem Statement and Architectural Validation

Standard command-line execution via msbuild.exe fails on the new .slnx solution format due to missing or misaligned SDK resolvers within parallel Side-by-Side (VS2022/VS2026) installations. Native C++/WinRT dependencies inside microsoft/terminal trigger compilation exceptions when mixed with user-level SDK paths located in AppData.

The architecture implemented in build-msvc2026-projects.ps1 resolves these issues via three core mechanics:

  1. Hard isolation of the $env:PATH variable by purging all local AppData\Local\dotnet references.
  2. Force-injection of DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR targeting the global 9.0.316 runtime.
  3. Execution via devenv.com to leverage the internal Visual Studio 2026 solution parser, bypassing raw MSBuild translation errors.

3. Execution Log Summary

  • Command: .\build-msvc2026-projects.ps1 -TargetDotNetVersion "9.0"
  • Solution File: OpenConsole.slnx
  • Target Configuration: Release | x64
  • Multi-Core Compiling: Enabled (CL_MP=true / MSBuildUseMultiToolTask=true)

4. Build Report Output (build_report.json)

{
   "Timestamp": "2026-07-28 12:05:14",
   "Project": "OpenConsole.slnx",
   "Configuration": "Release",
   "Platform": "x64",
   "EnforcedDotNet": "9.0.316",
   "CompilerEngine": "Visual Studio 2026",
   "Duration": "4m 12s",
   "Status": "Success",
   "ErrorCount": 0,
   "WarningCount": 142,
   "Errors": [],
   "Warnings": [
      "C4251: class needs to have dll-interface to be used by clients",
      "C4459: declaration of hid_device hides global declaration"
   ]
}

5. Conclusion

The pipeline successfully isolated the build environment. The .slnx solution compiled without modifications. The runtime environment enforcement prevented cross-version interference between Visual Studio 2022 and Visual Studio 2026.

Clone this wiki locally