Repository navigation
[ci-scan] Build break: CS0246 InvalidCSharp not found in ByRefLike/Validate.csproj (minifullaot) #128767
Description
Activity
- addedblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'Known Build ErrorUse this to report build issues in the .NET Helix tabUse this to report build issues in the .NET Helix tab
on May 29, 2026 - addeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on May 29, 2026 @vitek-karas / @steveisok what is this leg validating? monoVM on Linux X64 with full AOT?
@vitek-karas / @steveisok what is this leg validating? monoVM on Linux X64 with full AOT?
Yes, it's one of the canaries for other configurations legs. I'm not sure we really need it.
github-actions commented
on Jun 18, 2026 on Jun 18, 2026 – with GitHub ActionsContributorAuthorMore actionsWorkflow artifact: ci-fix
Artifact kind: handoff
Linked KBE: #128767Note
AI/Copilot-generated triage note.
This Known Build Error has no producible automated code change (reason: the existing
MonoAotIncompatible=truetest exclusion mechanism should prevent this project from building under minifullaot, but fails for an undetermined MSBuild property-evaluation or SDK-specific reason that cannot be diagnosed or fixed without full build log access), so I could not open even a best-effort PR. Looping in owners so it can be fixed forward rather than muted.Root cause (best analysis)
Validate.csproj(and its dependencyInvalidCSharp.ilproj) both carry<MonoAotIncompatible>true</MonoAotIncompatible>. The standard exclusion mechanism insrc/tests/Directory.Build.targets(line 15) should setDisableProjectBuild=truewhenRuntimeFlavor=monoandRuntimeVariant=minifullaot, which triggersnobuild.targetsto suppress compilation.However, in the
linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTestsleg, these projects are still compiled, causing:Validate.cs(5,7): error CS0246: The type or namespace name 'InvalidCSharp' could not be foundInvestigation path:
- The pipeline passes
-mono /p:RuntimeVariant=minifullaottosrc/tests/build.sh build.shexports__RuntimeFlavor=monoand passes/p:RuntimeVariant=minifullaotto MSBuildbuild.proj(lines 233-234) explicitly passes both/p:RuntimeFlavor=$(RuntimeFlavor)and/p:RuntimeVariant=$(RuntimeVariant)to inner builds- The
DisableProjectBuildcondition inDirectory.Build.targetschecks both properties - Despite all properties appearing correct, the exclusion does not fire
Possible causes:
- MSBuild property evaluation order —
DisableProjectBuildmay be evaluated before/p:RuntimeFlavor//p:RuntimeVariantare resolved in the IL SDK import chain Microsoft.NET.Sdk.ILmay handleDirectory.Build.targetsimport differently- The
ManagedBuildtarget inbuild.proj(line 196, condition!$(MonoAot) and !$(MonoFullAot)) runs because only-monois passed (not-mono_fullaot), butMonoFullAotis not set to true for minifullaot — meaning the managed build runs and compiles projects that should be excluded
Evidence
- Failing build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1438268
- First build it occurred: build 1433744, 2026-05-25 (computed within the scanned window; may not be the true origin)
- Persistent across all scanned builds
- No regressing change identified — this appears to be a pre-existing gap in the build exclusion mechanism for minifullaot
Suggested reviewers / area contacts
- Area owners (
area-VM-meta-mono):@steveisok,@dotnet/runtime-infrastructure - Related:
@vitek-karas(Mono AOT infrastructure)
The simplest resolution may be to verify whether this minifullaot test leg is still needed (as noted in the earlier comment thread), or to investigate why
DisableProjectBuilddoes not fire for these projects.Note
🔒 Integrity filter blocked 1 item
The following item was blocked because it doesn't meet the GitHub integrity level.
- [ci-scan] Test failure: CustomAttributeDecoderTests.TestCustomAttributeDecoderGenericUsingReflection on maccatalyst #128450
issue_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
To allow these resources, lower
min-integrityin your GitHub frontmatter:tools: github: min-integrity: approved # merged | approved | unapproved | none
Generated by CI Outer-Loop Failure Fixer · ● 51.4M · ◷
- The pipeline passes
- removeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Jul 11, 2026 - removedblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'
on Jul 15, 2026 removing blocking-clean-ci as it has not failed in 30 days
24-Hour Hit Count 7-Day Hit Count 1-Month Count 0 0 0 - added a commit that references this issue
on Jul 20, 2026 - added a commit that references this issue
on Jul 21, 2026 Fixed in #131081
- locked and limited conversation to collaborators
on Aug 28, 2026
Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1440191
Build error leg or test failing: linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTests minifullaot / Build Tests
Error Details
The
InvalidCSharpassembly reference is unresolved during the minifullaot test build, causing CS0246 compile errors in the ByRefLike/Validate test project.Error Message
trueonly for clear infra flakes. ExcludeConsoleLog skips helix log scanning. -->{ "ErrorMessage": "error CS0246: The type or namespace name 'InvalidCSharp' could not be found (are you missing a using directive or an assembly reference?) [/__w/1/s/src/tests/Loader/classloader/generics/ByRefLike/Validate.csproj]", "ErrorPattern": "", "BuildRetry": false, "ExcludeConsoleLog": false }Impact on platforms
First build it occurred
Filed by
ci-failure-scan, which scans dnceng-public outer-loop pipelines onmainand converts stable failures into KBEs and test-disable PRs.Report
Summary