diff --git a/build/TrimmingEnable.props b/build/TrimmingEnable.props index 3e22699d3f..6bb5579b24 100644 --- a/build/TrimmingEnable.props +++ b/build/TrimmingEnable.props @@ -8,7 +8,7 @@ - true + true @@ -17,7 +17,7 @@ $(WarningsAsErrors);IL2000;IL2001;IL2002;IL2003;IL2004;IL2005;IL2006;IL2007;IL2008;IL2009;IL2010;IL2011;IL2012;IL2013;IL2014;IL2015;IL2016;IL2017;IL2018;IL2019;IL2020;IL2021;IL2022;IL2023;IL2024;IL2025;IL2026;IL2027;IL2028;IL2029;IL2030;IL2031;IL2032;IL2033;IL2034;IL2035;IL2036;IL2037;IL2038;IL2039;IL2040;IL2041;IL2042;IL2043;IL2044;IL2045;IL2046;IL2047;IL2048;IL2049;IL2050;IL2051;IL2052;IL2053;IL2054;IL2055;IL2056;IL2057;IL2058;IL2059;IL2060;IL2061;IL2062;IL2063;IL2064;IL2065;IL2066;IL2067;IL2068;IL2069;IL2070;IL2071;IL2072;IL2073;IL2074;IL2075;IL2076;IL2077;IL2078;IL2079;IL2080;IL2081;IL2082;IL2083;IL2084;IL2085;IL2086;IL2087;IL2088;IL2089;IL2090;IL2091;IL2092;IL2093;IL2094;IL2095;IL2096;IL2097;IL2098;IL2099;IL2100;IL2101;IL2102;IL2103;IL2104;IL2105;IL2106;IL2107;IL2108;IL2109;IL2110;IL2111;IL2112;IL2113;IL2114;IL2115;IL2116;IL2117;IL2118;IL2119;IL2120;IL2121;IL2122;IL2123;IL2124;IL2125;IL2126;IL2127;IL2128;IL2129;IL2130;IL2131;IL2132;IL2133;IL2134;IL2135;IL2136;IL2137;IL2138;IL2139;IL2140;IL2141;IL2142;IL2143;IL2144;IL2145;IL2146;IL2147;IL2148;IL2149;IL2150;IL2151;IL2152;IL2153;IL2154;IL2155;IL2156;IL2157 - $(WarningsAsErrors);IL3050;IL3051;IL3052;IL3053;IL3054;IL3055;IL3056 + $(WarningsAsErrors);IL3050;IL3051;IL3052;IL3053;IL3054;IL3055;IL3056 diff --git a/src/Avalonia.Controls.ColorPicker/Helpers/ColorHelper.cs b/src/Avalonia.Controls.ColorPicker/Helpers/ColorHelper.cs index c9801c432b..7d03c1bfd0 100644 --- a/src/Avalonia.Controls.ColorPicker/Helpers/ColorHelper.cs +++ b/src/Avalonia.Controls.ColorPicker/Helpers/ColorHelper.cs @@ -15,7 +15,12 @@ namespace Avalonia.Controls.Primitives private static readonly Dictionary _cachedKnownColorNames = new Dictionary(); private static readonly object _displayNameCacheMutex = new object(); private static readonly object _knownColorCacheMutex = new object(); - private static readonly KnownColor[] _knownColors = (KnownColor[])Enum.GetValues(typeof(KnownColor)); + private static readonly KnownColor[] _knownColors = +#if NET6_0_OR_GREATER + Enum.GetValues(); +#else + (KnownColor[])Enum.GetValues(typeof(KnownColor)); +#endif /// /// Gets the relative (perceptual) luminance/brightness of the given color. diff --git a/src/Avalonia.Remote.Protocol/MetsysBson.cs b/src/Avalonia.Remote.Protocol/MetsysBson.cs index 9c5f92b6ac..390ab8f67d 100644 --- a/src/Avalonia.Remote.Protocol/MetsysBson.cs +++ b/src/Avalonia.Remote.Protocol/MetsysBson.cs @@ -73,6 +73,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class Serializer { private static readonly IDictionary _typeMap = new Dictionary @@ -615,6 +616,8 @@ namespace Metsys.Bson namespace Metsys.Bson { + [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class MagicProperty { private readonly PropertyInfo _property; @@ -689,6 +692,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class TypeHelper { private static readonly IDictionary _cachedTypeLookup = new Dictionary(); @@ -791,6 +795,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class ListWrapper : BaseWrapper { private IList _list; @@ -826,6 +831,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal static class ListHelper { public static Type GetListItemType(Type enumerableType) @@ -871,6 +877,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class CollectionWrapper : BaseWrapper { private ICollection _list; @@ -899,6 +906,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal abstract class BaseWrapper { public static BaseWrapper Create(Type type, Type itemType, object existingContainer) @@ -956,6 +964,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class ArrayWrapper : BaseWrapper { private readonly List _list = new List(); @@ -1008,6 +1017,7 @@ namespace Metsys.Bson namespace Metsys.Bson { [RequiresUnreferencedCode("Bson uses reflection")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "Bson uses reflection")] internal class Deserializer { internal class Options diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Input/EvDev/EvDevDevice.cs b/src/Linux/Avalonia.LinuxFramebuffer/Input/EvDev/EvDevDevice.cs index e7978a6e23..7bdbaba72a 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/Input/EvDev/EvDevDevice.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/Input/EvDev/EvDevDevice.cs @@ -20,7 +20,11 @@ namespace Avalonia.LinuxFramebuffer.Input.EvDev Fd = fd; _dev = dev; Name = Marshal.PtrToStringAnsi(NativeUnsafeMethods.libevdev_get_name(_dev)); +#if NET6_0_OR_GREATER + foreach (EvType type in Enum.GetValues()) +#else foreach (EvType type in Enum.GetValues(typeof(EvType))) +#endif { if (NativeUnsafeMethods.libevdev_has_event_type(dev, type) != 0) EventTypes.Add(type); diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj b/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj index 532f75e8eb..8569b7ec9a 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj @@ -3,6 +3,7 @@ net6.0;netstandard2.0 true + false $(DefineConstants);XAMLX_INTERNAL;XAML_RUNTIME_LOADER diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs index 7249c389df..6b6e680af6 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs @@ -255,7 +255,8 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings { Method = MethodBase.GetMethodFromHandle(method) as MethodInfo ?? throw new ArgumentException("Invalid method handle", nameof(method)); - DelegateType = Type.GetTypeFromHandle(delegateType); + DelegateType = Type.GetTypeFromHandle(delegateType) + ?? throw new ArgumentException("Unexpected null returned from Type.GetTypeFromHandle in MethodAsDelegateElement"); } public MethodInfo Method { get; } diff --git a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj index 6ec71360a0..27cf5f69bf 100644 --- a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj +++ b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj @@ -2,6 +2,8 @@ net6.0;netstandard2.0 true + + true diff --git a/src/Windows/Avalonia.Win32/OleDataObject.cs b/src/Windows/Avalonia.Win32/OleDataObject.cs index 824303b7fa..081bdebb18 100644 --- a/src/Windows/Avalonia.Win32/OleDataObject.cs +++ b/src/Windows/Avalonia.Win32/OleDataObject.cs @@ -41,6 +41,7 @@ namespace Avalonia.Win32 } [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = "We still use BinaryFormatter for WinForms dragndrop compatability")] + [UnconditionalSuppressMessage("Trimming", "IL3050", Justification = "We still use BinaryFormatter for WinForms dragndrop compatability")] private unsafe object? GetDataFromOleHGLOBAL(string format, DVASPECT aspect) { var formatEtc = new Interop.FORMATETC(); @@ -75,8 +76,8 @@ namespace Avalonia.Win32 using (var ms = new MemoryStream(data)) { ms.Position = DataObject.SerializedObjectGUID.Length; - BinaryFormatter binaryFormatter = new BinaryFormatter(); #pragma warning disable SYSLIB0011 // Type or member is obsolete + BinaryFormatter binaryFormatter = new BinaryFormatter(); return binaryFormatter.Deserialize(ms); #pragma warning restore SYSLIB0011 // Type or member is obsolete } diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 04b7202c39..e34172c7ee 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; @@ -536,7 +536,7 @@ namespace Avalonia.Win32 return PixelSize.Empty; } - DwmGetWindowAttribute(_hwnd, (int)DwmWindowAttribute.DWMWA_EXTENDED_FRAME_BOUNDS, out var clientRect, Marshal.SizeOf(typeof(RECT))); + DwmGetWindowAttribute(_hwnd, (int)DwmWindowAttribute.DWMWA_EXTENDED_FRAME_BOUNDS, out var clientRect, Marshal.SizeOf()); GetWindowRect(_hwnd, out var frameRect); var borderWidth = GetSystemMetrics(SystemMetric.SM_CXBORDER); diff --git a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj index d904684ffb..e5d2f14f79 100644 --- a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj +++ b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj @@ -3,6 +3,7 @@ Exe net461;netstandard2.0;net6.0 $(DefineConstants);XAMLX_INTERNAL + false