首页 > 解决方案 > Xamarin Forms UWP - 无法使用 .NET Native 工具链编译 - 错误:ILT0032

问题描述

我一直在开发 Xamarin 表单应用程序,但似乎无法在启用 .Net Native Tool 链的发布模式下构建 UWP 版本。尝试编译时,我在构建日志中收到以下错误消息:

C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : System.NotSupportedException: Cannot deserialize type 'Xamarin.Forms.VisualElement' because it contains property 'Bounds' which has no public setter.

剩余的堆栈跟踪: C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.TypeDesc.CheckSupported() C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError) C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.ReflectionAwareCodeGen.WriteReflectionInit(TypeScope scope) C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.XmlSerializationWriterCodeGen.GenerateBegin() C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Hashtable assemblies, String outputDir, IEnumerable'1 referenceDirectories, String intermediateDir, Boolean loadAssembly) C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, XmlMapping[] mappings, CompilerParameters parameters, String outputDir, IEnumerable'1 referenceDirectories, String intermediateDir, Boolean loadAssembly) C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, String outputDir, IEnumerable'1 referenceDirectories, String intermediateDir, List'1 wcfSerializers, Boolean loadAssembly) C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : at SerializationAssemblyGenerator.Program.Main(String[] args) Generating System.Reflection.DispatchProxy proxy code. C:\Users\dherring\.nuget\packages\microsoft.net.native.compiler\1.7.1\tools\Microsoft.NetNative.targets(697,5): error : ILT0032: Failed to compile serialization code. See the build log for error details.

由于其他限制,我在我的类库中使用 Visual Studio 2017 (15.7.6)、.NetStandard 1.4,因此,我只能达到引用的 Xamarin.Forms 版本 2.5.1.527436。

我查看了 UWP Default.rd.xml 文件,但它似乎没有听它?

<Namespace Name="Xamarin.Forms.VisualElement" Serialize="Excluded" Browse="Excluded" Activate="Excluded" Dynamic="Excluded" XmlSerializer="Excluded" />

<Type Name="Xamarin.Forms.VisualElement" Serialize="Auto">
      <Property Name="Bounds" Serialize="Excluded" Browse="Excluded" Dynamic="Excluded" />
</Type>

任何帮助将不胜感激。

标签: c#xamarin.formsuwp.net-native

解决方案


推荐阅读