From 18919ecfa6c8e349d1a8027656cbe79fbb09a4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Tue, 23 Jun 2026 09:45:44 +0200 Subject: [PATCH 1/4] Make bundled Playwright version discoverable by Dependabot Dependabot does not update a Central Package Management PackageVersion whose Version is an MSBuild property interpolation ($(MicrosoftPlaywrightVersion)) when the package has no direct PackageReference. That is exactly the case for the Microsoft.Playwright.MSTest.v4 entry declared in the "not used directly" group, so the bundled Playwright version silently stopped receiving updates. Give the PackageVersion a literal version (which Dependabot can discover and bump) and derive the MicrosoftPlaywrightVersion property from it via an item-metadata transform, keeping a single source of truth that still flows into the MSTest.Sdk template. See dependabot-core #5812 / #7183. Related to #9362. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Directory.Packages.props | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index add5417b22..9cbef9afa6 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -27,7 +27,9 @@ 6.2.14 18.4.0 - 1.58.0 + 18.1.1 - + + + @(PackageVersion->WithMetadataValue('Identity', 'Microsoft.Playwright.MSTest.v4')->'%(Version)') + From 6a486b360d9771241df55a188bf60ea9bb6b82f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Tue, 23 Jun 2026 09:52:47 +0200 Subject: [PATCH 2/4] Repo-qualify dependabot-core issue references in comment Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9cbef9afa6..12f346dba8 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -131,7 +131,7 @@ $(MicrosoftPlaywrightVersion)): Dependabot does not update a Central Package Management PackageVersion whose Version is an MSBuild property interpolation when the package has no direct PackageReference, so a property-based version silently stops receiving updates. - See dependabot-core #5812 / #7183. + See dependabot/dependabot-core#5812 and dependabot/dependabot-core#7183. The literal version is then surfaced as the MicrosoftPlaywrightVersion property below, which is the single source of truth that flows into the MSTest.Sdk template (see MSTest.Sdk.csproj) From 8400a07eeb30dfa39dedc19a0201408d2624a99a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Tue, 23 Jun 2026 10:07:56 +0200 Subject: [PATCH 3/4] Make bundled Aspire.Hosting.Testing version discoverable by Dependabot Aspire.Hosting.Testing has the same problem as Playwright: AspireHostingTestingVersion was a literal property flowing into the MSTest.Sdk template, but no literal PackageVersion existed for the package, so Dependabot could not discover or bump it. Apply the same pattern: declare a literal Aspire.Hosting.Testing PackageVersion in the 'not used directly' group and derive AspireHostingTestingVersion from it via an item-metadata transform. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Directory.Packages.props | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 12f346dba8..23f9849d21 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -12,7 +12,9 @@ false - 13.2.1 + 17.11.48 3.11.0 4.10.0 @@ -133,15 +135,17 @@ direct PackageReference, so a property-based version silently stops receiving updates. See dependabot/dependabot-core#5812 and dependabot/dependabot-core#7183. - The literal version is then surfaced as the MicrosoftPlaywrightVersion property below, which - is the single source of truth that flows into the MSTest.Sdk template (see MSTest.Sdk.csproj) - and is consumed by the shipped SDK. This keeps a single version to update (by Dependabot or by - hand) while remaining Dependabot-discoverable. + Each literal version is then surfaced as the matching *Version property below, which is the + single source of truth that flows into the MSTest.Sdk template (see MSTest.Sdk.csproj) and is + consumed by the shipped SDK. This keeps a single version to update (by Dependabot or by hand) + while remaining Dependabot-discoverable. --> + + @(PackageVersion->WithMetadataValue('Identity', 'Aspire.Hosting.Testing')->'%(Version)') @(PackageVersion->WithMetadataValue('Identity', 'Microsoft.Playwright.MSTest.v4')->'%(Version)') From 952aa644f464341094e8dc136c8e6a0eee4b06b9 Mon Sep 17 00:00:00 2001 From: Evangelink Date: Tue, 23 Jun 2026 10:41:17 +0200 Subject: [PATCH 4/4] Fix MSB4012: use literal version properties with a drift guard Storing an @(PackageVersion->...) item transform in a leaves the property unexpanded; when concatenated with strings in a task (e.g. the Copy in MSTest.Acceptance.IntegrationTests) it fails with MSB4012. Keep the consumed *Version properties as plain scalar literals, keep the literal PackageVersion items for Dependabot, and add the _ValidateBundledSdkFeatureVersions target so the two cannot drift. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- Directory.Packages.props | 46 +++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 23f9849d21..40dd43cac5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -12,9 +12,11 @@ false - + + 13.2.1 17.11.48 3.11.0 4.10.0 @@ -29,9 +31,11 @@ 6.2.14 18.4.0 - + + 1.60.0 18.1.1 - - @(PackageVersion->WithMetadataValue('Identity', 'Aspire.Hosting.Testing')->'%(Version)') - @(PackageVersion->WithMetadataValue('Identity', 'Microsoft.Playwright.MSTest.v4')->'%(Version)') - + + + <_AspireHostingTestingPackageVersion>@(PackageVersion->WithMetadataValue('Identity', 'Aspire.Hosting.Testing')->'%(Version)') + <_MicrosoftPlaywrightPackageVersion>@(PackageVersion->WithMetadataValue('Identity', 'Microsoft.Playwright.MSTest.v4')->'%(Version)') + + + +