Skip to content

Compile the MSTest generator against the Roslyn version it is packed for - #1899

Merged
SimonCropp merged 1 commit into
mainfrom
fix-mstest-roslyn-version
Aug 30, 2026
Merged

Compile the MSTest generator against the Roslyn version it is packed for#1899
SimonCropp merged 1 commit into
mainfrom
fix-mstest-roslyn-version

Conversation

@SimonCropp

Copy link
Copy Markdown
Member

The generator was packed only into analyzers/dotnet/roslyn4.4, but its Microsoft.CodeAnalysis.CSharp reference had been bumped to 4.14.0 without the folder moving with it.

Every compiler from 4.4 up to 4.13 therefore selected that folder and then skipped the assembly with CS9057, which is a warning. So [UsesVerify] generated nothing and each Verify call failed at run time with 'TestContext is null. Ensure test class has a [UsesVerify] attribute'. That covers VS 17.8 to 17.13, the .NET 8 LTS SDK, and .NET 9 SDKs before 9.0.300.

The generator now compiles against 4.4 again, restoring the support floor the folder always claimed. It only uses APIs from 4.3 and earlier (ForAttributeWithMetadataName, WithTrackingName), so nothing is given up.

Both the reference and the pack path now read one VerifyRoslynVersion property, so they cannot drift apart again. This replaces the CheckPackageVersion guard on Microsoft.CodeAnalysis.CSharp, which asserted the central version that this project no longer uses.

The generator was packed only into analyzers/dotnet/roslyn4.4, but its
Microsoft.CodeAnalysis.CSharp reference had been bumped to 4.14.0 without the
folder moving with it.

Every compiler from 4.4 up to 4.13 therefore selected that folder and then
skipped the assembly with CS9057, which is a warning. So [UsesVerify] generated
nothing and each Verify call failed at run time with 'TestContext is null.
Ensure test class has a [UsesVerify] attribute'. That covers VS 17.8 to 17.13,
the .NET 8 LTS SDK, and .NET 9 SDKs before 9.0.300.

The generator now compiles against 4.4 again, restoring the support floor the
folder always claimed. It only uses APIs from 4.3 and earlier
(ForAttributeWithMetadataName, WithTrackingName), so nothing is given up.

Both the reference and the pack path now read one VerifyRoslynVersion property,
so they cannot drift apart again. This replaces the CheckPackageVersion guard on
Microsoft.CodeAnalysis.CSharp, which asserted the central version that this
project no longer uses.
@SimonCropp SimonCropp added this to the 33.0.0 milestone Aug 29, 2026
@SimonCropp
SimonCropp merged commit 413edc5 into main Aug 30, 2026
7 checks passed
@SimonCropp
SimonCropp deleted the fix-mstest-roslyn-version branch August 30, 2026 02:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant