Documentation of the various slices in the ValueTuple package:
| Targeting pack |
Contents |
| netcoreapp1.1 |
Ref and lib assemblies type-forwards to System.Runtime ref assembly, which type-forwards to System.Private.Corelib (from CoreCLR or CoreRT). |
| netstandard1.0 and up |
Assembly implements ValueTuple and depends on System.Runtime |
| netstandard2.0 and up |
Relies on netstandard package (requires binding redirect) |
| PCL |
Assembly implements ValueTuple, but depends on mscorlib. Note that the precedence rules on targets means that PCL is picked when targeting desktop 4.5. |
| desktop 4.7 |
type-forwards ValueTuple to mscorlib |
Known issues
ValueTuple nupkg and net47
Most prominent issue is when targeting desktop 4.6 (or lower) and referencing the ValueTuple package, then running on machine with desktop 4.7 installed.
The symptom are that tuples don't work in EE, interactive and possibly ASP.NET.
Workaround options: (1) target 4.7, or (2) remove ValueTuple dependency, or (3) run without 4.7 installed.
See https://github.com/dotnet/corefx/issues/16195 for more details.
ValueTuple in netstandard and net47
ValueTuple in netstandard and net471
Applications targeting .NET 4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1
https://github.com/Microsoft/dotnet-framework-early-access/issues/9
Reported issues
Work items
Adding System.ValueTuple to various corlib implementations:
Add ITuple to System.Tuple and System.ValueTuple to those corlibs:
After that:
Make System.ValueTuple binary serializable (https://github.com/dotnet/corefx/issues/15229) (which will ship together with ITuple above):
Hash seed randomization:
EqualityComparer optimization:
Various BCL improvements:
Downgrade warnings issue:
- [ ] Change dependencies of ValueTuple package to reference 1.0.0 baseline (issue, fix) (closed "by design", customer should upgrade their 1.0 projects to 1.1 to use ValueTuple).
EE bug with not loading mscorlib
Clash between ValueTuple.dll and mscorlib.dll from new desktop framework (in short, a workaround was added to EE and a facade assembly was added to mscorlib in desktop 4.7.1 that type unifies with ValueTuple assembly version 4.1.*):
Binding redirects required for EF tests (julielerman/EFCore2NightlyNet461#1, ErikEJ/EntityFramework.SqlServerCompact#463)
But auto-generated binding redirects break type unification (https://github.com/Microsoft/dotnet-framework-early-access/issues/9)
Various bugs/proposals:
Change behavior when comparing with null (https://github.com/dotnet/corefx/issues/18528) (we ended up cancelling to keep Tuple and ValueTuple APIs more stable)
Documentation of the various slices in the ValueTuple package:
Known issues
ValueTuple nupkg and net47
Most prominent issue is when targeting desktop 4.6 (or lower) and referencing the ValueTuple package, then running on machine with desktop 4.7 installed.
The symptom are that tuples don't work in EE, interactive and possibly ASP.NET.
Workaround options: (1) target 4.7, or (2) remove ValueTuple dependency, or (3) run without 4.7 installed.
See https://github.com/dotnet/corefx/issues/16195 for more details.
ValueTuple in netstandard and net47
ValueTuple in netstandard and net471
Applications targeting .NET 4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1
https://github.com/Microsoft/dotnet-framework-early-access/issues/9
Reported issues
Work items
Adding
System.ValueTupleto various corlib implementations:Add
ITupletoSystem.TupleandSystem.ValueTupleto those corlibs:After that:
System.Runtimeinstead ofSystem.Private.CoreLib(https://github.com/dotnet/corefx/issues/15475, done with dotnet/corefx@17fdb43)Make
System.ValueTuplebinary serializable (https://github.com/dotnet/corefx/issues/15229) (which will ship together withITupleabove):update ref assembly (add serializable attribute) andadd tests to cover coreCLR implementationHash seed randomization:
EqualityComparer optimization:
Various BCL improvements:
Downgrade warnings issue:
- [ ] Change dependencies of ValueTuple package to reference 1.0.0 baseline (issue, fix)(closed "by design", customer should upgrade their 1.0 projects to 1.1 to useValueTuple).EE bug with not loading mscorlib
Clash between ValueTuple.dll and mscorlib.dll from new desktop framework (in short, a workaround was added to EE and a facade assembly was added to mscorlib in desktop 4.7.1 that type unifies with ValueTuple assembly version 4.1.*):
Binding redirects required for EF tests (julielerman/EFCore2NightlyNet461#1, ErikEJ/EntityFramework.SqlServerCompact#463)
But auto-generated binding redirects break type unification (https://github.com/Microsoft/dotnet-framework-early-access/issues/9)
Various bugs/proposals:
Change behavior when comparing with
null(https://github.com/dotnet/corefx/issues/18528) (we ended up cancelling to keep Tuple and ValueTuple APIs more stable)