【问题标题】:Release Package Build Failing for UWPUWP 的发布包构建失败
【发布时间】:2016-04-30 17:29:52
【问题描述】:

我为 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 

这是我的 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% 的可用内存。

我希望有人可以帮助我。

谢谢,

皮波

【问题讨论】:

标签: visual-studio-2015 uwp windows-10-universal .net-native


【解决方案1】:

您可能正在为 Visual Studio 2015 Update 2 使用非英语 UI 并尝试构建您的 UWP 应用的发布版本。

下载语言包:http://go.microsoft.com/fwlink/?LinkId=647001&clcid=0x409

致谢:http://pwnd.io/uwp-release-compile-error-ilt0005/

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我已经尝试从 Default.rd.xml 文件中删除该指令:它确实编译但我的应用程序在运行时崩溃。我阅读了有关运行时指令的信息,但我并不真正了解如何添加特定指令。你能提供一些有用的链接吗?我会再搜索一些,希望更新 2 也会有所帮助。
    • 如果为 DEBUG 构建打开 .NET Native,您可能会看到 MissingRuntimeArtifactExceptions 的 MissingMetadataExceptions 和一些错误消息。您需要稍微追查那些以解决问题。诚然,这是一个相当笨拙的工作。
    • 我没有收到任何这些错误,但我收到了其他我不理解的错误。你可以看这里1drv.ms/1QwqOmX
    【解决方案3】:

    在我安装了 Visual Studio 2015 更新 3 并从 EF7 切换到 EF core 后,我已经解决了所有问题,也可以通过 nuget 获得

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2017-10-29
      • 2020-05-14
      相关资源
      最近更新 更多