Conversation
- Create Directory.Build.props for centralized build configuration - Update solution files to VS 18 format - Update .vsconfig to require Windows 11 SDK (10.0.22621.0) - Centralize settings: PlatformToolset, WindowsTargetPlatformVersion, LanguageStandard, WarningLevel, TreatWarningAsError, SDLCheck, SpectreMitigation, ControlFlowGuard, GuardEHContMetadata - Remove redundant settings from individual .vcxproj files - Remove Guardian .gdn ruleset references (CI-only dependency) - Disable clang-tidy for Prefast configs (conflicts with /analyze) - Fix C2360 switch/case scoping in PaneHeader.cpp Breaking change: Requires Visual Studio 2026
- Auto-detect MSBuild/vstest via vswhere (no Developer Command Prompt needed) - Default build: Debug_Unicode x64 - Full configuration matrix: debug/release, unicode/ansi, x64/x86 - Prefast and Fuzz build support - Matching test scripts for all configurations - Clean scripts for individual or all configurations
- Replace direct msbuild calls with npm script tasks - Auto-detect MSBuild via vswhere (no Developer Command Prompt needed) - Default F5 launches Debug_Unicode x64 - Consistent naming: Debug/Release, ANSI suffix for non-Unicode, x64/x86 - Full matrix for MFCMAPI and MrMAPI debug targets
- Fuzz (x64) and Fuzz (x86) debug targets - Uses SmartViewTestData as initial corpus - Configures 60 second default timeout
- README: Focus on end users - download guidance based on Outlook bitness, help/feedback links, move all dev content to CONTRIBUTING.md - CONTRIBUTING: Add VS 2026 requirements, npm build instructions, fuzzing link - docs/Fuzzing.md: New comprehensive fuzzing guide with quick start - launch.json: Fix fuzz configs to use correct corpus directory (fuzz/corpus) and add artifact_prefix for crash outputs
- scripts/Check-Prerequisites.ps1: Validates VS 2026, SDK, toolset, Spectre libs, Node.js - .vscode/extensions.json: Recommend C++ and PowerShell extensions - package.json: Add "prereq" and "fuzz:corpus" scripts - CONTRIBUTING.md: Document prereq verification and .vsconfig import - docs/Fuzzing.md: Update to use npm run fuzz:corpus
- Switch to windows-2025-vs2026 runner (preview until May 4 GA)
- Move SmartViewTests generated files to UnitTest/gen/ for proper IDE visibility - Add "Configuration Files" filter with README, .vsconfig, package.json, etc. - Remove Prefast/Prefast_Unicode configs from solution and all vcxproj files - Enable on-demand Prefast via npm: `npm run build:prefast:x64` (uses /p:EnablePREfast=true on Release_Unicode) - Update Directory.Build.props for property-based Prefast enablement - Remove duplicate .clang-format reference from MrMAPI project - Fix Build-SmartViewTests.ps1 to use relative paths and auto-create output dir Reduces build configs from 14 to 10. Code is clean under /analyze with /WX.
There was a problem hiding this comment.
Pull request overview
This pull request upgrades the project from Visual Studio 2022 (v143) to Visual Studio 2026 (v145), adds ARM64EC platform support, and improves the development environment with comprehensive build scripts and prerequisite validation.
Changes:
- Upgrade to Visual Studio 2026 with v145 toolset and Windows 11 SDK (10.0.22621.0)
- Add ARM64EC platform configurations across all projects
- Replace Prefast build configurations with command-line
/p:EnablePREfast=trueapproach - Enhance developer experience with npm build scripts, prerequisite validation, and improved VS Code integration
Reviewed changes
Copilot reviewed 28 out of 30 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Directory.Build.props | Centralizes toolset (v145), SDK version (10.0.22621.0), and compiler settings |
| scripts/Check-Prerequisites.ps1 | Validates VS 2026, SDK, toolset, and Spectre libraries installation |
| scripts/Add-ARM64EC.ps1 | Automates addition of ARM64EC platform configurations to projects |
| package.json | Adds comprehensive npm build, test, and clean scripts for all configurations |
| *.vcxproj | Removes v143 toolset, Spectre settings, and Prefast configs (now in Directory.Build.props) |
| *.vcxproj | Adds ARM64EC platform configurations with conditional CETCompat and EnableASAN |
| .vsconfig | Updates to VS 2026 components including ARM64EC MFC/ATL and Windows 11 SDK |
| .vscode/* | Simplifies tasks/launch configs to use npm scripts instead of direct msbuild |
| .github/workflows/* | Updates CI to use windows-2025-vs2026 runner and build ARM64EC |
| README.md | Improves download section with clear x64/x86 guidance |
| CONTRIBUTING.md | Adds comprehensive build requirements and getting started instructions |
| docs/Fuzzing.md | New documentation for fuzzing with libFuzzer |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 28 out of 30 changed files in this pull request and generated 9 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 27 out of 29 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.