Visual studio 2015 UWP的发布包生成失败

Visual studio 2015 UWP的发布包生成失败,visual-studio-2015,uwp,windows-10-universal,.net-native,Visual Studio 2015,Uwp,Windows 10 Universal,.net Native,我为windows 10构建了一个通用应用程序,但我不知道本机工具链。当我准备创建这个包时,我遇到了很多错误,我在没有任何运气的情况下寻找解决方案 经过几次尝试后,我决定在一个测试项目中一件一件地使用我的应用程序,看看有什么问题。在添加Mvvm Light 5.2的ViewModelLocator后,我发现以下错误: NUTC300F:Internal Compiler Error: Native compilation failed due to out of memory error ILT

我为windows 10构建了一个通用应用程序,但我不知道本机工具链。当我准备创建这个包时,我遇到了很多错误,我在没有任何运气的情况下寻找解决方案

经过几次尝试后,我决定在一个测试项目中一件一件地使用我的应用程序,看看有什么问题。在添加Mvvm Light 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 
这是我的ViewModelLocator类

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>();
}
公共类ViewModelLocator
{
public const string herodelSpagename=“HeroDetails”;
公共ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(()=>SimpleIoc.Default);
var nav=新导航服务();
配置(HeroDetailsPageName,typeof(HeroDetails));
SimpleIoc.Default.Register(()=>nav);
SimpleIoc.Default.Register();
if(ViewModelBase.IsIndesignatic)
{
SimpleIoc.Default.Register();
}
其他的
{
SimpleIoc.Default.Register();
}
SimpleIoc.Default.Register();
}
public MainViewModel Main=>ServiceLocator.Current.GetInstance();
}
我还使用SQLite3、EF7RC1、NewtosoftJSON和HTML敏捷包。我已经遵循了所有的建议来编译EF7。我删除了obj文件夹,重新启动了visualstudio,没有找到任何关于这个问题的线索。 我的机器有16GB的内存,看看任务管理器,当我出错时,我有大约50%的可用内存

我希望有人能帮助我一些方法

谢谢


Pippo

您可以尝试从此文件中删除*Application*指令:Properties\Default.rd.xml。它指示.NET本机编译器对其保存/生成的信息过于慷慨,这可能是导致OOM的一个因素。删除此指令所允许的更保守的行为可能会释放出足够多的无关工作,以允许编译器完成。但是,这会使您面临编译器可能过度优化应用程序的问题,因此您需要在此配置中仔细测试它,并且可能需要向.rd.xml文件中添加一些更具体的指令,以便完全重新开始


我们在更新2中提供了一些补丁,这些补丁应该可以帮助像您这样依赖于大量反射/泛型框架的应用程序。

在安装visual studio 2015更新3并从EF7切换到nuget之后,我已经解决了所有问题,您正在使用Visual Studio 2015 Update 2的非英语用户界面,并尝试构建UWP应用程序的发布版本

下载语言包:


信用证:

可以安全地忽略警告。请参见此处:谢谢,我将尝试一下,但现在我认为OOM与该警告无关。我已尝试从Default.rd.xml文件中删除该指令:它确实编译,但我的应用程序在运行时崩溃。我读过有关运行时指令的内容,但我并不真正理解如何添加特定指令。你能提供一些有用的链接吗?我将搜索更多内容,希望更新2也会有所帮助。如果为调试构建启用.NET Native,您可能会看到MissingRuntimeArtifactExceptions的MissingMetadataExceptions,其中包含一些错误消息。为了解决这个问题,你需要对这些问题稍加关注。不可否认,这是一个相当糟糕的工作。我没有任何错误,但我有其他错误,我不明白。你可以看看这里