使用.Net native在发布模式下编译UWP应用程序时出现内存不足错误

我有一个解决方案,我的主项目是一个uwp应用程序,以及该应用程序引用的另外两个项目:

  1. UWP App —>参考文献2。
  2. 通用类库—->参考文献3。
  3. PCL图书馆

2 – >使用EF7和SQLight。

3 – >使用PCLCrypto

现在,当我在调试模式x86上定位本地机器时,一切正常并且非常好。

我想使用.Net native tool chain在发布模式下编译解决方案,这是我的配置:

在此处输入图像描述

当我启动编译时,它需要相当长的时间,并且.Net本机工具消耗了太多内存:

在此处输入图像描述

过了一段时间,一切都停止在visual studio上出现2个错误:

在此处输入图像描述

这是输出窗口所说的内容:

1> —— Build build:项目:ServerCommunication,配置:释放任何CPU —— 1> ServerCommunication – > C:\ Users \ aymen \ Documents \ Visual Studio 2015 \ Projects \ Applinova \ Liberte \ ServerCommunication \ bin \ Release \ ServerCommunication.dll 2> —— Build build:Project:NewspaperDataLayer,Configuration:Release x86 —— 2> C:\ Users \ aymen \ Documents \ Visual Studio 2015 \ Projects \ Applinova \ Liberte \ packages \ Microsoft.Bcl.Build.1.0.14 \ tools \ Microsoft.Bcl.Build.targets(225,5):警告:所有引用ServerCommunication.csproj的项目都必须安装nuget包Microsoft.Bcl.Build。 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=317569 。 2> NewspaperDataLayer – > C:\ Users \ aymen \ Documents \ Visual Studio 2015 \ Projects \ Applinova \ Liberte \ NewspaperDataLayer \ bin \ x86 \ Release \ NewspaperDataLayer.dll

3> —— Build build:项目:Liberte,配置:发布x86

– 这里有一些警告,我刚跳过

3>启动.NET本机编译3>处理应用程序代码3> C:\ Users \ aymen \ Documents \ Visual Studio 2015 \ Projects \ Applinova \ Liberte \ Liberte \ Resources.System.Linq.Expressions.rd.xml(35):警告:找不到’System.Linq.Expressions.Expression’中的方法’CreateLambda’。 3> C:\ Users \ aymen \ Documents \ Visual Studio 2015 \ Projects \ Applinova \ Liberte \ Liberte \ Resources.System.Linq.Expressions.rd.xml(91):warning:’System.Linq中的方法’ParameterIsAssignable’。无法找到Expressions.Expression’。 3>计算应用程序闭包并生成互操作代码3>生成序列化代码3>编译互操作代码3>清理未引用的代码3>生成本机代码3> STARTPROCESSTASK:错误:内存不足3> C:\ Program Files(x86)\ MSBuild \ Microsoft.NetNative \ x86 \ ilc \ IlcInternals.targets(1129,5):错误:ILT0005:’C:\ Program Files(x86)\ MSBuild \ Microsoft.NetNative \ x86 \ ilc \ Tools \ nutc_driver.exe @“ C:\ Users \ aymen \ Documents \ Visual Studio 2015 \ Projects \ Applinova \ Liberte \ Liberte \ obj \ x86 \ Release \ ilc \ intermediate \ MDIL \ Liberte.rsp“’返回退出代码1 ======== ==构建:2成功,1失败,0最新,0跳过========== ==========部署:0成功,0失败,0跳过= =========

请问这可能有什么问题?

我有同样的问题(我也使用EF7和其他库),但我解决了使用Visual Studio 15预览 (它不是Visual Studio 2015更新2,我没有尝试)。 他们改进了.NET本机工具,所以现在你不应该有任何问题,即使使用了很多第三方库。

UPDATE

我安装了Visual Studio 2015更新3并从EF7切换到EF核心后,我已经解决了所有问题

几天来我一直在努力解决这个问题,但目前还没有简单的解决方案。

EF7 github上有一个已关闭的问题,这里有更多信息( https://github.com/aspnet/EntityFramework/issues/4387 ),他们建议将解决方案更新为EF7到v1.0.0-rc2-16898。

我没有管理如何更新,因为它仍然是一个夜间版本,我的最终解决方案(“快速”解决方法)是将我的整个数据库更改为sqlite-pcl( https://visualstudiogallery.msdn.microsoft.com/4913e7d5-96c9 -4dde-a1a1-69820d615936 )。

如果您不急于为您的应用程序提供午餐,您可以一直等到RC2的最终版本,这应该在4月份完成。