Using centralized package management for vcxproj #43920
Open
+158
−358
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of the Pull Request
This pull request updates the build system for several native and managed projects, modernizing NuGet package management and improving code analysis configuration. The main changes involve switching from legacy
packages.configand manual.props/.targetsimports to PackageReference style for native projects, updating package versions, and streamlining code analysis settings.Build system modernization and package management:
PowerToys.MeasureToolCore.vcxproj,FindMyMouse.vcxproj) from legacypackages.configand manual.props/.targetsimports to NuGet PackageReference style, simplifying dependency management and build configuration. This includes removing thepackages.configfile and related import/error logic, and introducingPackageReferenceitems for required packages. [1] [2] [3] [4] [5]Directory.Packages.props, adding new entries forboost,boost_regex-vc143,Microsoft.Windows.ImplementationLibrary, andMicrosoft.WindowsAppSDK.Foundationto support the new build system and dependencies. [1] [2]Code analysis improvements:
PowerToys.MeasureToolCore.vcxproj,MeasureToolUI.csproj) to suppress specific warnings (81010002) and exclude NuGet cache files from code analysis, reducing noise and improving build performance. [1] [2]Project reference and output handling:
MeasureToolUI.csproj) to handle native project outputs more robustly, ensuring the WinMD and DLL files are available at runtime and configuring the project reference to avoid assembly reference issues.Compiler configuration:
Cpp.Build.propsto treat angle-bracket includes as external, disable warnings and analysis for external headers, and optimize build performance.