-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
area-System.ComponentModellinkable-frameworkIssues associated with delivering a linker friendly frameworkIssues associated with delivering a linker friendly framework
Milestone
Description
Test project: consoleapp-195d28e.zip
Repro: run make linked, which passes /p:PublishTrimmed=true /p:TrimMode=link to dotnet build:
$ make linked
[linker warnings]
** Executing linked app
bin/Debug/netcoreapp5.0/osx-x64/publish/myproject
❌ Could not get converter for System.DateTimeOffset: No parameterless constructor defined for type 'System.ComponentModel.DateTimeOffsetConverter'.
❌ Could not get converter for System.Decimal: No parameterless constructor defined for type 'System.ComponentModel.DecimalConverter'.
❌ Could not get converter for System.String: No parameterless constructor defined for type 'System.ComponentModel.StringConverter'.
❌ Could not get converter for System.SByte: No parameterless constructor defined for type 'System.ComponentModel.SByteConverter'.
❌ Could not get converter for System.Collections.ObjectModel.Collection`1[System.String]: No parameterless constructor defined for type 'System.ComponentModel.CollectionConverter'.
✅ Converter for System.Type: System.ComponentModel.TypeConverter
❌ Could not get converter for System.UInt64: No parameterless constructor defined for type 'System.ComponentModel.UInt64Converter'.
❌ Could not get converter for System.Int32[]: No parameterless constructor defined for type 'System.ComponentModel.ArrayConverter'.
❌ Could not get converter for System.Nullable`1[System.Int32]: No parameterless constructor defined for type 'System.ComponentModel.NullableConverter'.
❌ Could not get converter for System.Int16: No parameterless constructor defined for type 'System.ComponentModel.Int16Converter'.
❌ Could not get converter for System.Globalization.CultureInfo: No parameterless constructor defined for type 'System.ComponentModel.CultureInfoConverter'.
❌ Could not get converter for System.Single: No parameterless constructor defined for type 'System.ComponentModel.SingleConverter'.
❌ Could not get converter for System.UInt16: No parameterless constructor defined for type 'System.ComponentModel.UInt16Converter'.
❌ Could not get converter for System.Guid: No parameterless constructor defined for type 'System.ComponentModel.GuidConverter'.
❌ Could not get converter for System.Double: No parameterless constructor defined for type 'System.ComponentModel.DoubleConverter'.
❌ Could not get converter for System.Int32: No parameterless constructor defined for type 'System.ComponentModel.Int32Converter'.
❌ Could not get converter for System.TimeSpan: No parameterless constructor defined for type 'System.ComponentModel.TimeSpanConverter'.
❌ Could not get converter for System.Char: No parameterless constructor defined for type 'System.ComponentModel.CharConverter'.
❌ Could not get converter for System.Int64: No parameterless constructor defined for type 'System.ComponentModel.Int64Converter'.
❌ Could not get converter for System.Boolean: No parameterless constructor defined for type 'System.ComponentModel.BooleanConverter'.
❌ Could not get converter for System.Int64: No parameterless constructor defined for type 'System.ComponentModel.Int64Converter'.
❌ Could not get converter for System.UInt32: No parameterless constructor defined for type 'System.ComponentModel.UInt32Converter'.
❌ Could not get converter for System.IO.FileShare: No parameterless constructor defined for type 'System.ComponentModel.EnumConverter'.
❌ Could not get converter for System.ComponentModel.IComponent: No parameterless constructor defined for type 'System.ComponentModel.ReferenceConverter'.Running make notlinked (which does not pass /p:TrimMode=link to dotnet build, but it still passes /p:PublishTrimmed=true)shows the type converters exist then:
$ make notlinked
** Executing notlinked app
bin/Debug/netcoreapp5.0/osx-x64/publish/myproject
✅ Converter for System.DateTimeOffset: System.ComponentModel.DateTimeOffsetConverter
✅ Converter for System.Decimal: System.ComponentModel.DecimalConverter
✅ Converter for System.String: System.ComponentModel.StringConverter
✅ Converter for System.SByte: System.ComponentModel.SByteConverter
✅ Converter for System.Collections.ObjectModel.Collection`1[System.String]: System.ComponentModel.CollectionConverter
✅ Converter for System.Type: System.ComponentModel.TypeConverter
✅ Converter for System.UInt64: System.ComponentModel.UInt64Converter
✅ Converter for System.Int32[]: System.ComponentModel.ArrayConverter
✅ Converter for System.Nullable`1[System.Int32]: System.ComponentModel.NullableConverter
✅ Converter for System.Int16: System.ComponentModel.Int16Converter
✅ Converter for System.Globalization.CultureInfo: System.ComponentModel.CultureInfoConverter
✅ Converter for System.Single: System.ComponentModel.SingleConverter
✅ Converter for System.UInt16: System.ComponentModel.UInt16Converter
✅ Converter for System.Guid: System.ComponentModel.GuidConverter
✅ Converter for System.Double: System.ComponentModel.DoubleConverter
✅ Converter for System.Int32: System.ComponentModel.Int32Converter
✅ Converter for System.TimeSpan: System.ComponentModel.TimeSpanConverter
✅ Converter for System.Char: System.ComponentModel.CharConverter
✅ Converter for System.Int64: System.ComponentModel.Int64Converter
✅ Converter for System.Boolean: System.ComponentModel.BooleanConverter
✅ Converter for System.Int64: System.ComponentModel.Int64Converter
✅ Converter for System.UInt32: System.ComponentModel.UInt32Converter
✅ Converter for System.IO.FileShare: System.ComponentModel.EnumConverter
✅ Converter for System.ComponentModel.IComponent: System.ComponentModel.ComponentConverter*** Moved from dotnet/linker#1451 ***
Metadata
Metadata
Assignees
Labels
area-System.ComponentModellinkable-frameworkIssues associated with delivering a linker friendly frameworkIssues associated with delivering a linker friendly framework