Fix: Ensure SupportedOSPlatformVersion is respected by installer when TargetPlatformMinVersion is not set #8
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.
Issue
When a .NET project sets both
TargetFramework(e.g., net8.0-windows10.0.22621.0) andSupportedOSPlatformVersion(e.g., 10.0.19041.0), the installer wouldn't allow installation on Windows versions older than the version specified inTargetFramework, ignoring theSupportedOSPlatformVersionsetting.This happens because:
TargetPlatformMinVersionproperty is used to determine the minimum OS version in the AppxManifest.xmlTargetPlatformMinVersionis often not set explicitlyTargetPlatformMinVersionis not set, the build system doesn't automatically useSupportedOSPlatformVersionas a fallbackSolution
This PR updates the MSBuild targets to set
TargetPlatformMinVersionbased onSupportedOSPlatformVersionwhenTargetPlatformMinVersionis not explicitly defined. This ensures the correct minimum OS version is written to the AppxManifest.xml file.Changes:
TargetPlatformMinVersionfromSupportedOSPlatformVersionwhen appropriateWith these changes, developers can correctly specify their minimum supported OS version through
SupportedOSPlatformVersionand have it respected by the installer, while still targeting newer OS features throughTargetFramework.Example project configuration that will now work correctly:
Fixes #7.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.