Windows 10 Can';t在释放模式下构建UWP

Windows 10 Can';t在释放模式下构建UWP,windows-10,uwp,Windows 10,Uwp,我有一个项目在调试模式下运行良好,但在发布模式下根本不工作 该解决方案包含3个项目 共享项目 windows phone 8.1项目 UWP项目 这是错误输出 2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : System.InvalidOperationException: Unable to generate a tempora

我有一个项目在调试模式下运行良好,但在发布模式下根本不工作

该解决方案包含3个项目

  • 共享项目

  • windows phone 8.1项目

  • UWP项目

这是错误输出

 2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : System.InvalidOperationException: Unable to generate a temporary class (result=1).
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : error CS0012: The type 'Windows.UI.Xaml.Visibility' is defined in an assembly that is not referenced. You must add a reference to assembly 'Windows.Foundation.UniversalApiContract, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : error CS0030: Cannot convert type 'Windows.UI.Xaml.Visibility' to 'Windows.UI.Xaml.Visibility [e:\MyApp\obj\x86\Release\ilc\in\WinMetadata\Windows.winmd]'
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : error CS0029: Cannot implicitly convert type 'Windows.UI.Xaml.Visibility [e:\MyApp\obj\x86\Release\ilc\in\WinMetadata\Windows.winmd]' to 'Windows.UI.Xaml.Visibility'
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error :    at System.Xml.Serialization.Compiler.Compile(String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence, String outputDir, String intermediateDir, Boolean loadAssembly)
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error :    at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Hashtable assemblies, String outputDir, String intermediateDir, Boolean loadAssembly)
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error :    at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, XmlMapping[] mappings, CompilerParameters parameters, String outputDir, String intermediateDir, Boolean loadAssembly)
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error :    at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, String outputDir, String intermediateDir, List`1 wcfSerializers, Boolean loadAssembly)
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error :    at SerializationAssemblyGenerator.Program.Main(String[] args)
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : Internal compiler error: One or more errors occurred.
我使用的nuget软件包是

    "GoogleAnalyticsSDK": "1.2.12",
    "HockeySDK.UWP": "4.0.0",
    "HtmlAgilityPack": "1.4.9",
    "Microsoft.ApplicationInsights": "1.0.0",
    "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0",
    "Microsoft.ApplicationInsights.WindowsApps": "1.0.0",
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0",
    "MvvmLightLibs": "5.1.1",
    "Newtonsoft.Json": "8.0.3",
    "WriteableBitmapEx": "1.5.0"
更新

我试图手动添加West.Buffig.UnvialPalopCoupe,但得到了这个

更新2

在我取消选中编译与.Net本机工具链功能后,它工作了


有没有办法使用.net本机工具链来构建它?

我也遇到了一个非常类似的问题。我有一个类型,比方说Foo,引用了winmd类型Windows.UI.Xaml.Visibility,见下文

公共类Foo
{
公共Windows.UI.Xaml.Visibility;
}
当我试图使用XmlSerializer序列化Foo类型的实例时,我在编译时遇到了完全相同的错误。似乎.Net本机工具在为Foo之类的类型生成XmlSerializer时存在问题

这是我的解决办法。我创建了自己的可见性类型MyVisibility,并将现有的可见性字段更改为“仅获取属性”(以便XmlSerializer不会序列化该属性)

公共类Foo
{
公共Windows.UI.Xaml.Visibility
{
得到
{
返回(可见性)myVisibility;
}
}
公众能见度;
}
公共枚举的可见性
{
可见=0,
折叠=1
}
这是我序列化Foo实例的测试代码

公共静态无效测试()
{
var foo=new foo();
foo.myVisibility=myVisibility.Collapsed;
var serializer=newxmlserializer(typeof(Foo));
使用(var stream=new MemoryStream())
{
serializer.Serialize(流,foo);
流位置=0;
var foo1=(Foo)序列化程序。反序列化(流);
True(foo.Visibility==foo1.Visibility);
}
}

希望这有帮助。

“你必须添加一个对程序集‘Wr.Outual.UnvialSalpCopRoupe,版本= 2.0.0.0,Cule=中立,PultKyToMek= null,CordyType = WiDOWSRunTime'”的引用。请检查更新的问题。你不能相信在第一次严重事故后收到的错误消息。对.NET本机编译器进行故障排除远远超出了您的问题范围,它需要有人能够访问您的代码,并且对编译器有足够的了解,以便找到该编译器中的错误或建议代码中的解决方法。您只能在Microsoft技术支持部门找到相关人员。Visual Studio 2015 Update 2解决了许多与.NET Native有关的问题。您是否可以确认是否安装了最新的VS更新?你也可以直接与团队取得联系dotnetnative@microsoft.com我们很乐意提供帮助(因为我们可能无法通过这些步骤重现问题)。是的,我安装了最新的VS更新。