2016-02-23 22 views
12

Po uruchomieniu aplikacji na moim Certyfikacja Szablon 10 aplikacji opartych, pojawia się następujący błąd:Certification App nie z powodu prelaunch test

błąd Znaleziono: Walidacja aplikacja prelaunch wykryto następujące błędy: ◦The aplikacja powiodło prelaunch test - 49581RisingSoundMedia.ElectionCentral_1.1.7.0_x64__xrbjpqg44kdgm.

• Wpływ, jeśli nie został naprawiony: uruchomienie aplikacji potrwa dłużej, nawet po włączeniu funkcji wstępnego uruchamiania.

• Sposób naprawy: W przypadku wdrażania aplikacji w trybie OnLaunched upewnij się, że obsługujesz opcję LaunchActivatedEventArgs.PreLaunch, aby uzyskać informacje o zdarzeniu prelaunch.

Oczywiście nie mogę przesłonić OnLaunched nawet z szablonem 10, ponieważ klasa Bootstrap je zamyka.

Próbowałem przesłonić OnPreLaunchAsync i ustawienie continueStartup = false; ale to nie rozwiązało problemu.

Wszelkie pomysły?

+0

Po ustawieniu parametru continueStartup = true; i debuguję Prelaunch w Visual Studio, aplikacja działa dobrze. Jeśli opcja continueStartup = false (lub nie jest ustawiona) nigdy nie uruchomi OnInitializeAsync i otrzymam wyjątek odwołania zerowego w zdarzeniu OnStartAsync. –

+0

Gdy pakuję aplikację i uruchamiam testowanie aplikacji, nadal nie działa w teście PreLaunch. Przetestowałem to z VS z włączonym natywnym językiem .net i działało dobrze. –

Odpowiedz

8

Okazało się, że udało mi się opublikować w sklepie i przeszedł on pomyślnie certyfikację, mimo że nie powiódł się lokalny zestaw Windows App Cert Kit.

+0

bez żadnych błędów? – yalematta

4

Tak miałem ten problem, najpierw ty zaktualizowany do najnowszej wersji szablonu 10 (1.1.4): https://www.nuget.org/packages/template10

Następny co musiałem zrobić, to przenieść wszystkie moje kodu, który był w OnInitializeAsync i OnStartAsync to było w app.xaml.cs w aplikacji().

Musisz utrzymywać OnInitializeAsync i OnStartAsync tak szczupłe, jak to tylko możliwe, powinieneś przechowywać w nich tylko niezbędny kod Template10 i dodać swój kod w App().

 public override Task OnInitializeAsync(IActivatedEventArgs args) 
     { 
      // content may already be shell when resuming 
      if ((Window.Current.Content as ModalDialog) == null) 
      { 
       // setup hamburger shell 
       var nav = NavigationServiceFactory(BackButton.Attach, ExistingContent.Include); 
       Window.Current.Content = new ModalDialog 
       { 
        DisableBackButtonWhenModal = true, 
        Content = new Shell(nav), 
        ModalContent = new Views.Busy(), 
       }; 
      } 
      return Task.CompletedTask; 
     } 


    public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args) 
     { 
      NavigationService.Navigate(typeof(MainView)); 
      return Task.CompletedTask; 
     } 

W App() Dodałem wszystkie moje moje metody inicjalizacji dla mojej aplikacji, więc mój app() wygląda liek to:

public App() 
    { 
     Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync(
      WindowsCollectors.Metadata | 
      WindowsCollectors.UnhandledException | 
      WindowsCollectors.PageView | 
      WindowsCollectors.Session 

      ); 

     this.InitializeComponent(); 
     var element = new ViewModelLocator(); 
     //Template10.Services.LoggingService.LoggingService.Enabled = true; 


     //Template 10 stuff 
     // DOCS: https://github.com/Windows-XAML/Template10/wiki/Docs-%7C-Cache 
     CacheMaxDuration = TimeSpan.FromDays(1); 

     // DOCS: https://github.com/Windows-XAML/Template10/wiki/Docs-%7C-BackButton 
     ShowShellBackButton = SettingsService.Instance.UseShellBackButton; 

     // DOCS: https://github.com/Windows-XAML/Template10/wiki/Docs-%7C-SplashScreen 
     SplashFactory = (e) => new Views.Splash(e); 


     //My code here 
     ApiRoot.Instance.Init(); 
     InitDeviceTypeAndResource(); 
     InitApiLanguage(); 
     InitAppLanguage(); 
     InitABCRatings(); 

     //For updating Tiles 
     RegisterBackgroundTask(); 
    } 

Mam nadzieję, że to pomoże Ci się!

+0

Hmmm, używam wersji 1.10 szablonu 10, a mój kod domyślny jest tylko w metodach App.cs. –

+0

Czy jesteś w stanie odtworzyć swój błąd z próbek w template10?Jeśli nie, możesz pokazać mi jakiś kod, żeby lepiej widzieć, jak go publikujesz? – Damien

9

To wydaje się być znany problem z Windows App Cert Kit: https://developer.microsoft.com/en-us/windows/develop/app-certification-kit

"Test App prelaunch Validation zawiedzie ig uruchomić na wersji Windows-10 wydany przed version 1607 (Windows Anniversary Edition .) Zauważ, że test ten nie jest prowadzony w ramach ostatecznej certyfikacji zgłoszeń sklepowych "

Rozdzielczość: Aby zapewnić wyniki do tej przełęczy test, test z Windows 10 SDK wersja (14393) działającego na Windows-10 Anniversary Edition.