2015-11-08 143 views
2

我一直试图编译我的应用程序使用.NET本地工具链几天,我仍然没有设法让它工作。.NET本机编译器不断抛出编译错误

如果我尝试在不使用.NET Native选项的情况下进行编译(所以在调试模式下),一切正常,应用程序编译并按预期运行。

但是,每当我试图编译它在释放模式,只要.NET本机进程踢,我得到以下错误:

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:Type'Windows.UI.Xaml.DependencyObject'在未引用的程序集中定义。添加对程序集“Windows.Foundation.UniversalApiContract,版本= 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:Type'Windows.UI.Xaml.Data。 IValueConverter'在未引用的程序集中定义。添加对程序集“Windows.Foundation.UniversalApiContract,版本= 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:Type'Windows.UI.Xaml.Markup。 IXamlMetadataProvider'在未引用的程序集中定义。添加对程序集“Windows.Foundation.UniversalApiContract,版本= 1.0.0.0,Culture = neutral,PublicKeyToken = null,ContentType = WindowsRuntime”的引用。

1> C:\程序文件(x86)\的MSBuild \ Microsoft.NetNative \ ARM \ ILC \ IlcInternals.targets(886,5):错误:

1> C:\程序文件(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>在System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping [ ] xmlMappings,Type []类型,String defaultNamespace,证据证据,XmlSerialize rCompilerParameters parameters,Hashtable assemblies,String outputDir,String intermediateDir,Boolean loadAssembly)

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

1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ NetNative \ ARM \ ilc \ IlcInternals.targets(886,5):错误: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):错误:在SerializationAssemblyGenerator.Program中。Main(String [] args)

我试图在Google上找到某些内容,但没有结果。

我真的不知道我是否在这里做错了什么,或者我可以做些什么来解决这个问题。正如我所说的,当我以调试模式编译项目时,如果没有.NET Native,一切都很好。

谢谢你的帮助!

+1

构建失败的步骤完成了太多工作,并且该例外对于诊断潜在问题完全太模糊。它甚至不清楚它是由安装问题引起的,平台目标还是特定于您的项目。您*必须*创建此问题的最小再现次数,以便其他SO用户可以重现此次失败。如果您不想花时间,请致电Microsoft支持部门寻求帮助。 –

+0

@HansPassant这个项目现在太大了,我真的不知道从哪里开始复制这个问题。我希望其他用户也有同样的错误。但奇怪的是,我没有在我的项目中使用XmlSerializer,我只使用了DataContractSerializer,因为我读它更好地支持.NET Native编译器。至于那些缺少的引用,我真的不知道那应该是什么意思,标准编译器完美地工作,所以我没有看到任何遗漏的引用在这里...看起来像.NET Native编译器搞砸了这里的东西: ( – Sergio0694

回答

1

这很可能是由您的应用程序或库集合中包含的* .rd.xml文件引起的。寻找XmlSerialize的过度广泛使用例如:

最有可能的是,您实际上并不需要序列化MyAssembly中的所有内容,并且这些宽泛的内含物使得序列化生成器更容易出现窒息和崩溃。

+0

这确实是问题,谢谢!:) – Sergio0694