2016-06-02 24 views
0

Meine Anwendung verwendet Syncfusion UWP-Chart-Steuerung und EF7 Core-RC2, mit VS2015 Vorschau 2..net nativen Speicher aus

ich die Anwendung fein mit nur dem EF7 Kern zusammenstellen kann, aber sobald ich einen Verweis hinzufügen Bei Syncfusion enden sehr lange Kompilierzeiten, die mit der Ausnahme ".net native out of memory" enden.

Syncfusion Referenz verursacht diesen Effekt nicht in einer anderen, sehr einfachen App. Hat jemand dieses Problem schon einmal kennengelernt und kann dies durch meine csProj-Einstellungen verursacht werden?

Antwort

1

Während Sie die Anwendung mit .Net nativem Chain-Tool im Release-Modus ausführen, benötigt es mehr Speicherplatz zum Erstellen der Anwendung. Da .NET Native Tools kompiliert werden, enthalten Ihre IL-Bibliotheken mit verwaltetem Code in nativen Bibliotheken und das SDK "Syncfusion Controls for UWP XAML" eine größere Anzahl von Assemblys. Wir empfehlen daher, entsprechende Assemblys in Ihrer Anwendung anstelle des SDK "Syncfusion Controls for UWP XAML" zu verwenden, um dieses Problem zu beheben.

Sie können die einzelnen Baugruppen von der folgenden Position beziehen.

Montageort: C: \ Program Files (x86) \ Syncfusion \ Wesentliche Studio \ 15.1.0.33 \ Assemblies für Universal Windows \ 10.0

Grüße, Marimuthu S.

2

Ich arbeite an der .NET native Laufzeit-und Compiler-Team. Wir haben Fälle gesehen, bei denen Kombinationen von Bibliotheken dazu führen können, dass der Compiler mit der Speicherauslastung davonläuft. Dies geschieht in der Regel, weil einige Arten von Typen in diesen Assemblies dazu führen, dass unsere Analyse der Generika-Verwendung über den Grund hinaus explodiert.

Eine Sache, die helfen kann, ist die Standard-Runtime-Richtlinie innerhalb der Eigenschaften \ Default.rd.xml Datei zu entfernen:

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

Dies kann helfen, die entlaufenen Zustand zu vermeiden, sondern auch andere Nebenwirkungen haben .

Wir wären daran interessiert, dieses Thema näher mit Ihnen zu untersuchen. Wenn Sie Zeit haben, mit uns zu arbeiten, senden Sie bitte eine E-Mail an [email protected] Wir werden wahrscheinlich nach einer ilcRepro Datei für Ihre Anwendung fragen, damit wir genauer untersuchen können.

+0

ich es versucht, die App kompiliert, aber ich bekomme eine Ausnahme, die ich normalerweise nicht beobachte. Allerdings habe ich einen Workaround gefunden: Die SyncFusion-Bibliothek enthält alles, einschließlich der Küchenspüle. Es ist möglich, einen Verweis nur auf die DLL für sfChart einzufügen, und dann verhält sich der Compiler zivil. Weitere Informationen finden Sie in diesem Stackoverflow-Thread: http://stackoverflow.com/questions/37350144/cant-use-syncfusion-assembly-in-project –

+2

Das ist eine weitere sinnvolle Arbeit um @VladimirAkopan. Alles, was den gesamten Satz von Eingaben in den Compiler schneiden kann, wird wahrscheinlich dazu beitragen, dass sich die Dinge weiter bewegen. Wir verfolgen Fälle wie diese und werden weiterhin Verbesserungen vornehmen, um gegen willkürliche Programmeingaben resistent zu sein :-). –

0

Yup. Es ist Syncfusion oder vielleicht Microsoft, aber ziehen Sie nicht einfach ein Control aus der Syncfusion-Toolbox auf Ihre UWP-App und versuchen Sie, es als .NET Native Code zu kompilieren. Es wird ein Verweis auf das gesamte SDK hinzugefügt, das niemals mit dem Kompilieren fertig wird, bevor nicht genügend Arbeitsspeicher zur Verfügung steht.

Sie können dies testen, indem Sie versuchen, ihren Beispielbrowser als .NET Native zu kompilieren, wenn der Geist Sie bewegt.