2016-01-24 28 views
7

Zbudowałem uniwersalną aplikację dla systemu Windows 10 i nie wiedziałem o łańcuchu narzędzi macierzystych. Kiedy byłem gotowy do stworzenia pakietu, dostałem wiele błędów i szukałem rozwiązania bez żadnego szczęścia.Niepowodzenie kompilacji pakietu wydania dla UWP

Po kilku zamachów postanowiłem wziąć moją aplikację, kawałek po kawałku, w ramach projektu badawczego, aby zobaczyć co jest nie tak i mam następujące błędy po dodałem ViewModelLocator z MVVM Światła 5.2:

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 

A to moja 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>(); 
} 

jestem również za pomocą SQLite3, ef7 RC1 Newtosoft JSON i HTML agility pack. Podążyłem już za wszystkimi sugestiami, aby skompilować EF7. Usunąłem folder obj, zrestartowałem Visual Studio i szukałem całego wątku o problemie bez żadnego szczęścia. Moja maszyna ma 16 GB pamięci i patrząc na menedżera zadań, miałem około 50% wolnej pamięci po otrzymaniu błędu.

Mam nadzieję, że ktoś może mi pomóc, w jaki sposób.

Dzięki,

Pippo

+0

Ostrzeżenia można bezpiecznie zignorować. Zobacz tutaj: https://github.com/dotnet/corefx/issues/5088 –

+0

Dzięki, spróbuję, ale teraz myślę, że OOM nie ma związku z tymi ostrzeżeniami. – Pippo46

Odpowiedz

0

Mam rozwiązać wszystkie moje problemy po zainstalowaniu visual studio 2015 Update 3 i przełączane z EF7 do EF core również dostępny poprzez Nuget

0

Może spróbuj usunąć * stosowania Dyrektywa * od tego pliku: Właściwości \ Default.rd.xml. Instruuje on .NET Native Compiler, że jest nadmiernie hojny na temat informacji, które zapisuje/generuje i może być czynnikiem przyczyniającym się do OOM. Bardziej zachowawcze zachowania, jakie można uzyskać usuwając tę ​​dyrektywę, mogą zwolnić dostatecznie dużo pracy, aby umożliwić kompilatorowi ukończenie. Jednak to otwiera cię na kompilator, który może potencjalnie przesadzić z optymalizacją twojej aplikacji, więc musisz dokładnie przetestować ją w tej konfiguracji i być może będziesz musiał dodać kilka bardziej szczegółowych dyrektyw do pliku .rd.xml, aby ponownie się włączyć. Twoje stopy.

Mamy kilka poprawek w aktualizacji 2, które powinny pomóc aplikacjom takim jak twoje, które polegają na wielu frameworkach z dużą ilością refleksów/dużą liczbą generycznych.

+0

Próbowałem już usunąć tę dyrektywę z pliku Default.rd.xml: kompiluje się, ale potem moja aplikacja ulega awarii w czasie wykonywania. Czytałem o dyrektywach wykonawczych, ale tak naprawdę nie rozumiałem, jak dodać konkretną dyrektywę. Czy możesz podać przydatne linki na ten temat? Poszukuję kolejnych i mam nadzieję, że aktualizacja 2 pomoże również. – Pippo46

+0

Po włączeniu .NET Native dla kompilacji DEBUG można zobaczyć MissingMetadataExceptions of MissingRuntimeArtifactExceptions z niektórymi komunikatami o błędach. Będziesz musiał ich nieco ścigać, aby rozwiązać problem. Prawdą jest, że jest to całkiem niezobowiązująca praca. –

+0

Nie dostaję żadnego z tych błędów, ale dostaję inne błędy, których nie rozumiem.Możesz zajrzeć tutaj http://1drv.ms/1QwqOmX – Pippo46