-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.NET 6.0.101 breaks GENERIC_MATH_FEATURE/PreviewFeatures functionallity #62840
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @dotnet/area-system-numerics Issue DetailsDescriptionAfter updating to the latest Visual Studio 2022 version on 12/14/21 and .NET SDK version 6.0.101, the project could not be built. Since the interfaces Reproduction Steps
Expected behaviorProject can continue to be built successfully. Actual behaviorProject can no longer be created because the interfaces Regression?Yes, with the mentioned workaround the creation of the project works. Known WorkaroundsDisabled the {
"sdk": {
"version": "6.0.100",
"rollForward": "disable"
}
} Configuration
Other informationNo response
|
I have also suffered this error in my hobby project. I'm unsure how to install 6.0.100 again. The SDK installer complains I have another version of the project and adding that
|
You can find the download here - https://dotnet.microsoft.com/en-us/download/dotnet/6.0#version_1 |
I also logged this in the SDK repo: dotnet/sdk#23073 |
cc @safern in case he's around tomorrow and has insights. We shouldn't have broken this... |
Since we serviced the ref pack we might have broken it because of file versions so with 6.0.1 assembly conflict resolution might prefer the System.Runtime in the ref pack rather than the one in the System.Runtime.Experimental package. Looking to confirm this theory and see what we can do for next servicing releases. |
I was able to confirm that theory with the repository shared on the issue, this is the output from the conflict resolution:
You can workaround this if you want to use 6.0.101 SDK by adding this target to the projects that want to use System.Runtime.Experimental (in the case of netevolve-guard, your .Experimental and .Experimental.Tests projects) you can add it in a common location like a Directory.Build.targets file: <Target Name="RemoveSystemRuntimeFromRefPack"
BeforeTargets="_HandlePackageFileConflicts"
Condition="'@(Reference -> WithMetadataValue('NugetPackageId', 'System.Runtime.Experimental'))' != ''">
<ItemGroup>
<Reference Remove="@(Reference)"
Condition="$([System.String]::Copy(%(Reference.Identity)).Contains('System.Runtime.dll')) and
'%(Reference.NuGetPackageId)' == 'Microsoft.NETCore.App.Ref'" />
</ItemGroup>
</Target> @ericstj @dsplaisted is there a way to tell package conflict file resolution to always choose the asset from System.Runtime.Experimental via a platform manifest or package override file in the ref pack? Or do we have to service System.Runtime.Experimental every time we service the ref pack? |
We intentionally tried to address this here: https://github.com/dotnet/runtime/pull/55678/files#diff-41acba6267202db943fa29d434bb231021a7b8b47b63c990bd61708111c67515R33 I can't see where we're addressing conflict resolution in the current approach, did that get removed? |
Rereading above, it looks like folks didn't understand how ref-pack servicing / file-versions worked when we did it initially.
I think we should just modify how much gap we bump the experimental reference assembly to make sure it will be higher than servicing. |
Should we just set the minor version of the file version for System.Runtime.Experimental so that we guarantee it is always greater? |
I don't think there is a particular preference provided we know we won't need to publish some actual |
I think bumping the minor version of only the file version should be fine. Fix should go here: runtime/src/libraries/System.Runtime.Experimental/ref/System.Runtime.Experimental.csproj Line 35 in 45d1f9e
And we should be able to remove the incrementing of |
Let me know if help is needed to drive fixing this and porting it. We have till Monday to make the cut for 6.0.2 |
Do I just need to put up a PR against |
Likewise, is the minor version differing going to cause problems with version resolution or if we do end up exposing an actual |
We need to put it against main and against release/6.0 and then go over through servicing approval.
It shouldn't be a problem. If needed we can always bump the minor version for the file version attribute on v6.1 to something like 6.200.x |
Description
After updating to the latest Visual Studio 2022 version on 12/14/21 and .NET SDK version 6.0.101, the project could not be built. Since the interfaces
IBinaryNumber
,IComparisonOperators
&IFloatingPoint
could no longer be found in the project https://github.com/samtrion/netevolve-guardReproduction Steps
Expected behavior
Project can continue to be built successfully.
Actual behavior
Project can no longer be created because the interfaces
IBinaryNumber
,IComparisonOperators
&IFloatingPoint
are not available.Regression?
Yes, with the mentioned workaround the creation of the project works.
Known Workarounds
Disabled the
rollForward
via theglobal.json
.Configuration
So far always the
latest
SDK version of .NET 6Windows 10 & Windows 11
x64
Was able to recreate the issue both locally and on the GitHub Actions Runner.
Other information
No response
The text was updated successfully, but these errors were encountered: