2016-01-24 76 views
7

我为Windows 10构建了通用应用程序,但我不知道Native Tool链。当我准备好创建软件包时,我收到了很多错误,并且我找到了一个没有任何运气的解决方案。发布软件包构建失败的UWP

几attemps我决定把我的应用程序,一块一块,在一个测试项目,看看有什么是错后,我得到了下面的错误,我添加MVVM光的5.2 ViewModelLocator后:

NUTC300F:Internal Compiler Error: Native compilation failed due to out of memory error 
ILT0005: 'C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\Tools\nutc_driver.exe 
    @"C:\...\Test\obj\x86\Release\ilc\intermediate\MDIL\Test.rsp"' returned exit code 1 
Warning Method 'CreateLambda' within 'System.Linq.Expressions.Expression' could not be found. 
    C:\....\Test\Resources.System.Linq.Expressions.rd.xml 35 
Warning Method 'ParameterIsAssignable' within 'System.Linq.Expressions.Expression' could not be found. 
    C:\....\Test\Resources.System.Linq.Expressions.rd.xml 91 

这是我ViewModelLocatorClass

public class ViewModelLocator 
{ 
    public const string HeroDetailsPageName = "HeroDetails"; 

    public ViewModelLocator() 
    { 
     ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); 

     var nav = new NavigationService(); 
     nav.Configure(HeroDetailsPageName, typeof(HeroDetails)); 
     SimpleIoc.Default.Register<INavigationService>(() => nav); 

     SimpleIoc.Default.Register<IDialogService, DialogService>(); 

     if (ViewModelBase.IsInDesignModeStatic) 
     { 
      SimpleIoc.Default.Register<IHotSRepository, DesignDataSource>(); 
     } 
     else 
     { 
      SimpleIoc.Default.Register<IHotSRepository, HotSRepository>(); 
     } 

     SimpleIoc.Default.Register<MainViewModel>(); 
    } 

    public MainViewModel Main => ServiceLocator.Current.GetInstance<MainViewModel>(); 
} 

我也是用的SQLite3,EF7 RC1,Newtosoft JSON和HTML敏捷包。我已经遵循了所有的建议来编译EF7。我删除了obj文件夹,重新启动Visual Studio,找到所有关于该问题的线程,但没有任何运气。 我的机器有16GB的内存,看着任务管理器,当我收到错误时,我有大约50%的可用内存。

我希望有人能帮我一些如何。

感谢,

皮波

+0

的警告,可以安全地忽略。看到这里:https://github.com/dotnet/corefx/issues/5088 –

+0

谢谢,我会试一试,但现在我认为,OOM它是不相关的警告。 – Pippo46

回答

0

我已经解决了我所有的问题,我已经安装了Visual Studio 2015年更新3和通过的NuGet

0

你也可以尝试删除此文件中的* *应用指令:属性\ Default.rd.xml。它指示.NET Native编译器对其保存/生成的信息过于慷慨,可能是OOM的一个促成因素。删除该指令所允许的更保守的行为可以释放足够多余的工作,从而允许编译器完成。然而,这会让你向编译器潜在地过度优化你的应用程序,所以你需要在这个配置中仔细测试它,并且可能需要添加一些更具体的指令到.rd.xml文件中,以便完全恢复你的脚。

我们在Update 2中有一些修复程序,它们可以帮助那些依赖许多具有大量反射/泛型的框架的应用程序。

+0

我已经尝试从Default.rd.xml文件中删除该指令:它会编译,但然后我的应用程序在运行时崩溃。 我读了关于运行时指令,但我真的不明白如何添加特定的指令。你能给一些有用的链接吗? 我会再搜索一些,希望更新2也会有所帮助。 – Pippo46

+0

如果为DEBUG构建打开.NET Native,则可能会看到MissingRuntimeArtifactExceptions的MissingMetadataExceptions以及一些错误消息。你需要追逐那些以解决问题。无可否认,这是一个非常漂亮的工作。 –

+0

我没有得到任何这些错误,但我得到了我不明白的其他错误。你可以在这里看看http://1drv.ms/1QwqOmX – Pippo46