Ответ 1
Оказывается, что я смог опубликовать его в магазине, и он прошел сертификацию, хотя локальный локальный набор сертификатов приложений Windows локально не удался.
Когда я запускаю сертификацию приложений в моем приложении на основе шаблона 10, я получаю следующую ошибку:
Обнаружена ошибка. При проверке предварительного запуска приложения обнаружены следующие ошибки: ◦ Не удалось выполнить предварительный тест приложения - 49581RisingSoundMedia.ElectionCentral_1.1.7.0_x64__xrbjpqg44kdgm.
• Воздействие, если оно не исправлено: для запуска приложения потребуется больше времени, даже если включен предварительный запуск.
• Как исправить: в реализации метода метода OnLaunched убедитесь, что вы обрабатываете параметр LaunchActivatedEventArgs.PreLaunch, чтобы быть предупреждающим событием.
Очевидно, я не могу переопределить OnLaunched даже с шаблоном 10, потому что класс Bootstrap запечатывает его.
Я попытался переопределить OnPreLaunchAsync и установить continueStartup = false; но это не устранило проблему.
Любые идеи?
Оказывается, что я смог опубликовать его в магазине, и он прошел сертификацию, хотя локальный локальный набор сертификатов приложений Windows локально не удался.
Это, похоже, известная проблема с сертификатом Windows App Kit: https://developer.microsoft.com/en-us/windows/develop/app-certification-kit
" Тест проверки предварительного запуска приложения не завершится, если вы запускаете версию Windows-10, выпущенную до версии 1607 (выпуск Windows Anniversary Edition). Обратите внимание, что этот тест не выполняется как часть окончательной сертификации для Windows Store Доводы"
Разрешение: Чтобы обеспечить результаты этого теста, протестируйте версию Windows 10 SDK (14393), запущенную в выпуске Windows-10 Anniversary Edition.
Да, у меня была эта проблема: сначала вы обновили до последней версии Template 10 (1.1.4): https://www.nuget.org/packages/template10
Далее мне нужно было переместить весь мой код, который был в OnInitializeAsync и OnStartAsync, который был в app.xaml.cs в App().
Вам нужно, чтобы OnInitializeAsync и OnStartAsync были максимально тонкими, вы должны сохранить в них только необходимый код Template10 и добавить свой код в 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;
}
В приложении() я добавил все мои мои методы инициализации для моего приложения, поэтому приложение App() выглядит так:
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();
}
Я надеюсь, что это поможет вам!