简体   繁体   English

.NET Native 编译器不断抛出编译错误

[英].NET Native compiler keeps throwing compilation errors

I've been trying to compile my app using the .NET Native toolchain for days and I still didn't manage to get it working.几天来我一直在尝试使用 .NET Native 工具链编译我的应用程序,但我仍然没有设法让它工作。

If I try to compile it without using the .NET Native option (so in Debug mode), everything works just fine and the app is compiled and runs as expected.如果我尝试在不使用 .NET Native 选项的情况下编译它(因此在调试模式下),一切正常,应用程序将按预期编译和运行。

But, whenever I try to compile it in release mode, as soon as the .NET Native process kicks in, I get the following errors:但是,每当我尝试在发布模式下编译它时,只要 .NET Native 进程启动,我就会收到以下错误:

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : System.InvalidOperationException: Unable to generate a temporary class (result=1). 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5):错误:System.InvalidOperationException:无法生成临时类(结果=1)。

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : error CS0012: The Type 'Windows.UI.Xaml.DependencyObject' is defined in an assembly that is not referenced. 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : error CS0012: The Type 'Windows.UI.Xaml.DependencyObject' is defined in an未引用的程序集。 Add a reference to the assembly 'Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.添加对程序集“Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime”的引用。

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : error CS0012: The Type 'Windows.UI.Xaml.Data.IValueConverter' is defined in an assembly that is not referenced. 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : error CS0012: The Type 'Windows.UI.Xaml.Data.IValueConverter' is defined在未引用的程序集中。 Add a reference to the assembly 'Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.添加对程序集“Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime”的引用。

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : error CS0012: The Type 'Windows.UI.Xaml.Markup.IXamlMetadataProvider' is defined in an assembly that is not referenced. 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : error CS0012: The Type 'Windows.UI.Xaml.Markup.IXamlMetadataProvider' 已定义在未引用的程序集中。 Add a reference to the assembly 'Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.添加对程序集“Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime”的引用。

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): 错误:

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.Compiler.Compile(String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence, String outputDir, String intermediateDir, Boolean loadAssembly) 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.Compiler.Compile(String ns, XmlSerializerCompilerParameters xmlParameters, Evidence证据、字符串输出目录、字符串中间目录、布尔负载组装)

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Hashtable assemblies, String outputDir, String intermediateDir, Boolean loadAssembly) 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): 错误:在 System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[ ] 类型、字符串默认命名空间、证据证据、XmlSerializerCompilerParameters 参数、哈希表程序集、字符串输出目录、字符串中间目录、布尔负载组装)

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, XmlMapping[] mappings, CompilerParameters parameters, String outputDir, String intermediateDir, Boolean loadAssembly) 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, XmlMapping[ ] 映射、CompilerParameters 参数、String outputDir、String middleDir、Boolean loadAssembly)

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, String outputDir, String intermediateDir, List`1 wcfSerializers, Boolean loadAssembly) 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, String outputDir , String middleDir, List`1 wcfSerializers, Boolean loadAssembly)

1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): error : in SerializationAssemblyGenerator.Program.Main(String[] args) 1>C:\\Program Files (x86)\\MSBuild\\Microsoft.NetNative\\ARM\\ilc\\IlcInternals.targets(886,5): 错误:在 SerializationAssemblyGenerator.Program.Main(String[] args)

I tried to find something on Google, but without results.我试图在谷歌上找到一些东西,但没有结果。

I really don't know if I'm doing something wrong here or if there's something I can do to fix this.我真的不知道我是否在这里做错了什么,或者我是否可以做些什么来解决这个问题。 As I said, when I compile the project in debug mode, without the .NET Native, everything is fine.正如我所说,当我在调试模式下编译项目时,没有 .NET Native,一切都很好。

Thank you for your help!感谢您的帮助!

This is most likely caused by a *.rd.xml file in your application or set of libraries that is being too inclusive.这很可能是由您的应用程序或一组库中的 *​​.rd.xml 文件过于包容引起的。 Look for overly broad uses of XmlSerialize ex:寻找 XmlSerialize ex 的过于广泛的用途:

Most likely, you don't actually need to serialize EVERYTHING in MyAssembly and those kinds of broad inclusions make it much more likely that the serialization generator with choke and crash.最有可能的是,您实际上并不需要序列化 ​​MyAssembly 中的所有内容,而这些类型的广泛包含使得序列化生成器更有可能发生阻塞和崩溃。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM