.net нехватка памяти при компиляции приложения с помощью Syncfusion Controls

Мое приложение использует Syncfusion UWP для управления диаграммами и EF7 Core RC2, с предварительным просмотром VS2015 2.

Я могу скомпилировать приложение, используя только ядро ​​EF7, но как только я добавлю ссылку на Syncfusion, у меня будет очень продолжительное время компиляции, которое заканчивается исключением ".net native out of memory".

Ссылка Syncfusion не вызывает этого эффекта в другом, очень простом приложении. Кто-нибудь сталкивался с этой проблемой раньше и возможно ли это быть вызвано моими настройками csProj?

3 ответа

Решение

Когда приложение запускается с помощью встроенного инструмента цепочки.Net в режиме Release, для сборки приложения потребуется больше места в памяти. Поскольку инструменты.NET Native компилируют ваши библиотеки IL с управляемым кодом в собственных библиотеках, а также SDK "Syncfusion Controls для UWP XAML" содержит большее количество сборок. Поэтому мы предлагаем использовать соответствующие сборки в вашем приложении вместо SDK "Syncfusion Controls для UWP XAML" для решения этой проблемы.

Вы можете ссылаться на отдельные сборки из приведенного ниже местоположения.

Местоположение сборки: C:\Program Files (x86)\Syncfusion\Essential Studio\15.1.0.33\ Сборки для универсальной Windows\10.0

С уважением, Маримуту С.

Я работаю в.NET Native runtime и команде компиляторов. Мы видели случаи, когда комбинации библиотек могли заставить компилятор убегать с использованием памяти. Обычно это происходит потому, что некоторый набор типов в этих сборках приводит к тому, что наш анализ использования обобщений выходит за пределы разумного.

Одна вещь, которая может помочь, это удалить директиву времени выполнения по умолчанию внутри файла Properties\Default.rd.xml:

    <Assembly Name="*Application*" Dynamic="Required All" /> // REMOVE THIS

Это может помочь избежать условия побега, но также может иметь другие побочные эффекты.

Мы были бы заинтересованы в более глубоком изучении этой проблемы с вами. Если у вас есть время поработать с нами, отправьте письмо по адресу dotnetnative@microsoft.com. Мы, вероятно, попросим файл ilcRepro для вашего приложения, чтобы мы могли провести более тщательное расследование.

Ага. Это Syncfusion или, возможно, Microsoft, но не просто перетащите элемент управления из панели инструментов Syncfusion в свое приложение UWP и попробуйте скомпилировать его как собственный код.NET. Он добавит ссылку на весь SDK, который никогда не завершит компиляцию, пока не закончится память.

Вы можете проверить это, попробовав скомпилировать их пример браузера как.NET Native, если вас вдохновит дух.

Другие вопросы по тегам