diff --git a/eng/illink.targets b/eng/illink.targets index 29dd3dd83bf76a..e8c9b52bb12835 100644 --- a/eng/illink.targets +++ b/eng/illink.targets @@ -1,11 +1,5 @@ - - - <_RequiresLiveILLink>true - - true _EmbedILLinkXmls;$(PrepareResourcesDependsOn) @@ -210,7 +204,8 @@ $(ILLinkArgs) --action link $(TargetName) $(ILLinkArgs) -b true - $(ILLinkArgs) --preserve-symbol-paths + + $(ILLinkArgs) --preserve-symbol-paths $(ILLinkArgs) -x "@(ILLinkDescriptorsLibraryBuildXml->'%(FullPath)', '" -x "')" $(ILLinkArgs) --substitutions "$(ILLinkSubstitutionsLibraryBuildXml)" diff --git a/eng/liveILLink.targets b/eng/liveILLink.targets index ffc75a7cc10c16..c3c9eb555a6ce1 100644 --- a/eng/liveILLink.targets +++ b/eng/liveILLink.targets @@ -1,33 +1,33 @@ - + - + - <_RequiresLiveILLink Condition="'$(_RequiresLiveILLink)' == '' And ( + true + '$(EnableSingleFileAnalyzer)' == 'true')">true - + <_ILLinkTasksSourceDir>$(ToolsProjectRoot)illink\src\ILLink.Tasks\ $(ToolsProjectRoot)illink\src\ILLink.RoslynAnalyzer\build\Microsoft.NET.ILLink.Analyzers.props - + - + <_RequiresILLinkPack>false $(ToolsILLinkDir)net\ILLink.Tasks.dll $(ToolsILLinkDir)netframework\ILLink.Tasks.dll - + - <_RequiresLiveILLink>false + false diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props index 33938989e386de..9f30f4b909a236 100644 --- a/src/libraries/Directory.Build.props +++ b/src/libraries/Directory.Build.props @@ -48,8 +48,6 @@ enable annotations - - true diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 1163572cec2902..f6185f9bd185f2 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -66,6 +66,12 @@ true + + true + + <_SilenceIsAotCompatibleUnsupportedWarning Condition="'$(DotNetBuildSourceOnly)' == 'true'">true - + + true + + diff --git a/src/libraries/Microsoft.Bcl.AsyncInterfaces/src/Microsoft.Bcl.AsyncInterfaces.csproj b/src/libraries/Microsoft.Bcl.AsyncInterfaces/src/Microsoft.Bcl.AsyncInterfaces.csproj index c97e58d75a4483..35e810365c1728 100644 --- a/src/libraries/Microsoft.Bcl.AsyncInterfaces/src/Microsoft.Bcl.AsyncInterfaces.csproj +++ b/src/libraries/Microsoft.Bcl.AsyncInterfaces/src/Microsoft.Bcl.AsyncInterfaces.csproj @@ -2,6 +2,9 @@ netstandard2.0;$(NetFrameworkMinimum);netstandard2.1 + + true true Provides the IAsyncEnumerable<T> and IAsyncDisposable interfaces and helper types for .NET Standard 2.0. This package is not required starting with .NET Standard 2.1 and .NET Core 3.0. diff --git a/src/libraries/Microsoft.Bcl.Numerics/src/Microsoft.Bcl.Numerics.csproj b/src/libraries/Microsoft.Bcl.Numerics/src/Microsoft.Bcl.Numerics.csproj index 0ab1a5b2cab2e7..2e4e315246222f 100644 --- a/src/libraries/Microsoft.Bcl.Numerics/src/Microsoft.Bcl.Numerics.csproj +++ b/src/libraries/Microsoft.Bcl.Numerics/src/Microsoft.Bcl.Numerics.csproj @@ -2,6 +2,9 @@ netstandard2.0;$(NetFrameworkMinimum);netstandard2.1 + + true true true diff --git a/src/libraries/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj b/src/libraries/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj index a05c036040c043..8d12915d4b28ac 100644 --- a/src/libraries/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj +++ b/src/libraries/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj @@ -17,6 +17,7 @@ false false + false false diff --git a/src/libraries/System.ComponentModel.Composition/Directory.Build.props b/src/libraries/System.ComponentModel.Composition/Directory.Build.props index db56d69d6c8b7d..02acc6dae411d7 100644 --- a/src/libraries/System.ComponentModel.Composition/Directory.Build.props +++ b/src/libraries/System.ComponentModel.Composition/Directory.Build.props @@ -4,5 +4,7 @@ ECMA false false + + true diff --git a/src/libraries/System.Composition.Hosting/src/System.Composition.Hosting.csproj b/src/libraries/System.Composition.Hosting/src/System.Composition.Hosting.csproj index c41c4876ca85ed..0dd13746d7199f 100644 --- a/src/libraries/System.Composition.Hosting/src/System.Composition.Hosting.csproj +++ b/src/libraries/System.Composition.Hosting/src/System.Composition.Hosting.csproj @@ -4,6 +4,8 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) false false + + true Microsoft false true diff --git a/src/libraries/System.Composition.TypedParts/src/System.Composition.TypedParts.csproj b/src/libraries/System.Composition.TypedParts/src/System.Composition.TypedParts.csproj index 318ec32b398045..d57922042773a2 100644 --- a/src/libraries/System.Composition.TypedParts/src/System.Composition.TypedParts.csproj +++ b/src/libraries/System.Composition.TypedParts/src/System.Composition.TypedParts.csproj @@ -5,6 +5,8 @@ System.Composition false false + + true Microsoft false true diff --git a/src/libraries/System.Configuration.ConfigurationManager/Directory.Build.props b/src/libraries/System.Configuration.ConfigurationManager/Directory.Build.props index c23e70d0e2d061..9c41bc51359726 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/Directory.Build.props +++ b/src/libraries/System.Configuration.ConfigurationManager/Directory.Build.props @@ -6,5 +6,7 @@ false false + + true \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj b/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj index b5ca42ec6522b9..332f6c44c048f6 100644 --- a/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj +++ b/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj @@ -1,6 +1,9 @@ netstandard2.0 + + false + false disable EventLogMessages.res diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverter.cs index 93f64da6c31d1f..dc27e9c228c586 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverter.cs @@ -5,6 +5,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Runtime.CompilerServices; using System.Text.Encodings.Web; @@ -523,7 +524,7 @@ private static EnumFieldInfo[] ResolveEnumFields(JsonNamingPolicy? namingPolicy) Debug.Assert(names.Length == values.Length); Dictionary? enumMemberAttributes = null; - foreach (FieldInfo field in typeof(T).GetFields(BindingFlags.Public | BindingFlags.Static)) + foreach (FieldInfo field in GetFields()) { if (field.GetCustomAttribute() is { } attribute) { @@ -561,6 +562,12 @@ private static EnumFieldInfo[] ResolveEnumFields(JsonNamingPolicy? namingPolicy) } return enumFields; + +#if !NET9_0_OR_GREATER + [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2090:UnrecognizedReflectionPattern", + Justification = "Enum fields are always preserved by trimming.")] +#endif + static IEnumerable GetFields() => typeof(T).GetFields(BindingFlags.Public | BindingFlags.Static); } private static string ResolveAndValidateJsonName(string name, JsonNamingPolicy? namingPolicy, EnumFieldNameKind kind) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverterFactory.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverterFactory.cs index 138df8a5d42839..47885274828540 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverterFactory.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/EnumConverterFactory.cs @@ -25,7 +25,13 @@ public override JsonConverter CreateConverter(Type type, JsonSerializerOptions o return Create(type, EnumConverterOptions.AllowNumbers, namingPolicy: null, options); } - [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2071:UnrecognizedReflectionPattern", + [UnconditionalSuppressMessage( + "ReflectionAnalysis", +#if NET9_0_OR_GREATER + "IL2071:UnrecognizedReflectionPattern", +#else + "IL2070:UnrecognizedReflectionPattern", +#endif Justification = "'EnumConverter where T : struct' implies 'T : new()', so the trimmer is warning calling MakeGenericType here because enumType's constructors are not annotated. " + "But EnumConverter doesn't call new T(), so this is safe.")] public static JsonConverter Create(Type enumType, EnumConverterOptions converterOptions, JsonNamingPolicy? namingPolicy, JsonSerializerOptions options) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/NullableConverterFactory.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/NullableConverterFactory.cs index 2d93b693340361..78ed6516b894bc 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/NullableConverterFactory.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/NullableConverterFactory.cs @@ -43,7 +43,13 @@ public static JsonConverter CreateValueConverter(Type valueTypeToConvert, JsonCo culture: null)!; } - [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2071:UnrecognizedReflectionPattern", + [UnconditionalSuppressMessage( + "ReflectionAnalysis", +#if NET9_0_OR_GREATER + "IL2071:UnrecognizedReflectionPattern", +#else + "IL2070:UnrecognizedReflectionPattern", +#endif Justification = "'NullableConverter where T : struct' implies 'T : new()', so the trimmer is warning calling MakeGenericType here because valueTypeToConvert's constructors are not annotated. " + "But NullableConverter doesn't call new T(), so this is safe.")] [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionEmitMemberAccessor.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionEmitMemberAccessor.cs index 05f453ef7181a5..156dc813eb9364 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionEmitMemberAccessor.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionEmitMemberAccessor.cs @@ -153,6 +153,10 @@ public override JsonTypeInfo.ParameterizedConstructorDelegate CreateAddMethodDelegate<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] TCollection>() => CreateDelegate>(CreateAddMethodDelegate(typeof(TCollection))); diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionMemberAccessor.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionMemberAccessor.cs index 6740825cbbba79..dee01f0f22f428 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionMemberAccessor.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/ReflectionMemberAccessor.cs @@ -112,6 +112,10 @@ public override JsonTypeInfo.ParameterizedConstructorDelegate CreateAddMethodDelegate<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] TCollection>() { Type collectionType = typeof(TCollection); diff --git a/src/libraries/oob-trim.proj b/src/libraries/oob-trim.proj index b17f8e920129a9..0404a78083905f 100644 --- a/src/libraries/oob-trim.proj +++ b/src/libraries/oob-trim.proj @@ -3,7 +3,7 @@ $(NetCoreAppCurrent)-$(TargetOS) - true + true diff --git a/src/libraries/sfx-finish.proj b/src/libraries/sfx-finish.proj index 742bafb20541d6..decdf15be282ad 100644 --- a/src/libraries/sfx-finish.proj +++ b/src/libraries/sfx-finish.proj @@ -7,7 +7,7 @@ true $(MicrosoftNetCoreAppRefPackDataDir)FrameworkList.xml - true + true $(InstallerProjectRoot)pkg\sfx\Microsoft.NETCore.App\PackageOverrides.txt $(MicrosoftNetCoreAppRefPackDataDir)PackageOverrides.txt