Skip to content

Move remaining sample, perf, and test apps off the .NET 6 projection moniker - #11690

Open
Vineeth (vineethkuttan) wants to merge 3 commits into
mainfrom
user/kvineeth/netupgrade-samples2.0
Open

Move remaining sample, perf, and test apps off the .NET 6 projection moniker#11690
Vineeth (vineethkuttan) wants to merge 3 commits into
mainfrom
user/kvineeth/netupgrade-samples2.0

Conversation

@vineethkuttan

Copy link
Copy Markdown
Contributor

Summary

Follow-up to the SamplesTargetFrameworkMoniker split. Three projects were
missed and were still resolving $(WindowsAppSdkTargetFrameworkMoniker)
(.NET 6) with unconditional win10-* RIDs.

$(WindowsAppSdkTargetFrameworkMoniker) is unchanged at net6.0 — it governs
the shipped projection, so moving it would be a consumer breaking change.

Changes

Project Before After
Samples/ItemsViewIntegrationApp WindowsAppSdk moniker $(SamplesTargetFrameworkMoniker)
perf/scenarios/XAMLPerf.UnpackagedApp.Cs.MUX WindowsAppSdk moniker $(SamplesTargetFrameworkMoniker)
controls/test/testinfra/MUXTestInfra WindowsAppSdk moniker $(DotNetCoreTargetFrameworkMoniker)
  • RIDs — adopted the TFM-conditional pattern already used elsewhere in
    Samples\, rather than a flat rename, so init.cmd net6 keeps working.
  • Publish profiles — renamed 6 win10-*.pubxmlwin-*.pubxml (via
    git mv, rename detection intact) and updated <PublishProfile> to match.
    RuntimeIdentifier inside each is conditional; the filename is only a
    lookup key, so net6 still resolves win10-*.
  • eng/adhocapp.propsAssetTargetFallback now lists net6.0 and net8.0,
    as packaging projects wrap both projection-floor and sample/test apps.

Note on MUXTestInfra

It uses $(DotNetCoreTargetFrameworkMoniker), not the samples moniker.
SamplesTargetFrameworkMoniker is hardcoded net8.0, but init.cmd net6 is
still supported and its consumer MUXControls.Test uses the DotNetCore
moniker — pinning it to net8 would leave a net6 project referencing a net8
library. Same moniker as its consumer keeps them in lockstep.

Not included

MUXControlsTestApp / MUXControls.Test still carry unconditional win10-*
RIDs and win10-$(Platform).pubxml. They resolve to net8 today via
$(DotNetCoreTargetFrameworkMoniker), so they carry the same latent
NETSDK1083 exposure, but they're outside this change's scope.

Validation

  • init.cmd x64chk + build samples
  • init.cmd x64chk net6 + restore, to confirm the < 8 RID branch
  • MUXControls test pass

…ble RIDs

Three projects were still pinned to $(WindowsAppSdkTargetFrameworkMoniker)
with unconditional win10-* RIDs, so they stayed on .NET 6 after the samples
moniker was split out.

- ItemsViewIntegrationApp, XAMLPerf.UnpackagedApp.Cs.MUX: retarget to
  $(SamplesTargetFrameworkMoniker).
- MUXTestInfra: retarget to $(DotNetCoreTargetFrameworkMoniker) so it tracks
  its consumer MUXControls.Test and still honours `init.cmd net6`.
- Switch the above to the repo's TFM-conditional RID pattern and rename six
  win10-*.pubxml to win-*.pubxml, updating <PublishProfile> in lockstep.
- eng/adhocapp.props: add a net8.0 AssetTargetFallback alongside net6.0, since
  .wapproj restore now spans both.

win10-* RIDs are not in .NET 8's portable RID graph (NETSDK1083), and a
<PublishProfile> name that no longer exists on disk downgrades to a silent
NETSDK1198 warning, so the profile renames must accompany the RID change.
@vineethkuttan
Vineeth (vineethkuttan) requested a review from a team as a code owner August 28, 2026 06:24
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@vineethkuttan

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
1 pipeline(s) were filtered out due to trigger conditions.

@microsoft-github-policy-service microsoft-github-policy-service Bot added the needs-triage Issue needs to be triaged by the area owners label Aug 28, 2026
@vineethkuttan Vineeth (vineethkuttan) changed the title User/kvineeth/netupgrade samples2.0 Move remaining sample, perf, and test apps off the .NET 6 projection moniker Aug 28, 2026
…platform version

Moving MUXTestInfra to $(DotNetCoreTargetFrameworkMoniker) changed its
TargetPlatformVersion from 10.0.17763.0 to 10.0.22621.0, but the project
hardcoded Microsoft.Windows.SDK.cpp 10.0.17763.4, so the package's targets
failed the build:

  Microsoft.Windows.SDK.cpp.targets(13,5): error : Version of Uwp Package
  10.0.17763.0 does not match TargetPlatformVersion 10.0.22621.0

Use $(MicrosoftWindowsSDKCppNugetPackageVersion) instead, matching
MUXControls.Test. That property is parsed from packages.config, which is
also the source of $(WindowsTargetPlatformVersion), so the two stay in
sync by construction for both net6 and net8 builds.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-triage Issue needs to be triaged by the area owners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant