#c# #uwp #windows-10-universal #windows-store
#c# #uwp #Windows-10-универсальный #Windows-store
Вопрос:
Недавно я не смог несколько раз пройти сертификацию своего приложения UWP. Команда сертификации всегда говорит мне, что при запуске / запуске происходит сбой. Я не могу воспроизвести сбой самостоятельно, даже если у меня есть трассировка стека. Если кто-нибудь столкнется с подобной проблемой или какой-либо идеей, я могу двигаться вперед, это будет здорово.
Вещи, которые я пробовал, но не смог воспроизвести сбой:
- Запустите Windows App Cert Kit, пройдите без сбоев или проблем.
- Запустите приложение в режиме выпуска с помощью .Включена встроенная цепочка инструментов NET.
- Установите и запустите пакет, который будет загружен в магазин Windows.
- Создайте приложение с боковой загрузкой и установите его на другое устройство Windows 10, не предназначенное для разработки.
Записанный стек сбоев выглядит следующим образом
appname::app onlaunched()
stowed_exception 80131500: stowed_exception
combase.dll RoOriginateLanguageException() error.cpp:1504
System.Private.Interop System::Runtime::InteropServices::ExceptionHelpers OriginateLanguageException() ExceptionHelpers.cs:113
System.Private.Interop System::Runtime::InteropServices::ExceptionHelpers GetHRForExceptionWithErrorPropogationNoThrow() ExceptionHelpers.cs:219
System.Private.Interop System::Runtime::InteropServices::McgMarshal GetHRForExceptionWinRT() McgMarshal.cs:1239
appname.UniversalWindows.McgInterop.dll __Interop::ReverseComStubs.Stub_12_System __Canon_$catch$0() SharedStubs.g.cs:11147
mrt100_app.dll RhpCallCatchFunclet2() exceptionhandling.asm:438
mrt100_app.dll System::Runtime::EH DispatchEx() ExceptionHandling.cs:683
mrt100_app.dll System::Runtime::EH RhThrowEx() ExceptionHandling.cs:552
mrt100_app.dll RhpThrowEx2() exceptionhandling.asm:198
System.Private.Interop System::Runtime::InteropServices::McgMarshal ThrowOnExternalCallFailed() McgMarshal.cs:1267
appname.UniversalWindows.McgInterop.dll __Interop::ComCallHelpers Call() SharedStubs.g.cs:8527
appname.UniversalWindows.McgInterop.dll Windows::UI::Xaml::Controls::IFrame__Impl::Stubs Navigate() ImplTypes.g.cs:158360
appname.UniversalWindows.McgInterop.dll Windows::UI::Xaml::Controls::Frame Navigate() SafeTypes.g.cs:44489
appname.UniversalWindows.exe appname::App OnLaunched() App.xaml.cs:76
System.Private.Threading System::Progress$1_$89_System::VoidValueTypeParameter_.System.IProgress_T_ Report() SafeTypes.g.cs:23264
appname.UniversalWindows.McgInterop.dll __Interop::ReverseComStubs.Stub_12_System __Canon_() SharedStubs.g.cs:11130
appname.UniversalWindows.McgInterop.dll Windows::UI::Xaml::IApplicationOverrides__Impl::Vtbl OnLaunched__n() ImplTypes.g.cs:138287
Windows.UI.Xaml.dll DirectUI::FrameworkApplicationGenerated OnLaunchedProtected() frameworkapplication.g.cpp:502
Windows.UI.Xaml.dll DirectUI::FrameworkView OnActivated() frameworkview_partial.cpp:267
Windows.UI.Xaml.dll Microsoft::WRL::Details::DelegateArgTraits_long (__cdecl Windows::Foundation::ITypedEventHandler_impl_Windows::Foundation::Internal::AggregateType_Windows::UI::Core::CoreWindow *,Windows::UI::Core::ICoreWindow *_,IInspectable *_ *)() event.h:245
Microsoft::WRL::InvokeTraits_-2_::InvokeDelegates__lambda_3ad0adb09957fd62cbc86618ebbeb8fa_,Windows::Foundation::ITypedEventHandler_Windows::ApplicationModel::Core::CoreApplicationView *,Windows::ApplicationModel::Activation IActivatedEventArgs *_ _() internalevent.h:119
twinapi.appcore.dll Windows::ApplicationModel::Core::CoreApplicationView Activate() coreapplicationview.cpp:545
rpcrt4.dll Invoke() invoke.asm:183
rpcrt4.dll Ndr64StubWorker() srvcall.cxx:392
rpcrt4.dll NdrStubCall3() srvwrap.cxx:166
combase.dll CStdStubBuffer_Invoke() stub.cxx:1446
rpcrt4.dll CStdStubBuffer_Invoke() ndrfwds.cxx:182
combase.dll ObjectMethodExceptionHandlingAction__lambda_c9f3956a20c9da92a64affc24fdd69ec_ _() excepn.hxx:87
combase.dll DefaultStubInvoke() channelb.cxx:1452
combase.dll SyncServerCall StubInvoke() servercall.hpp:826
combase.dll ServerCall ContextInvoke() ctxchnl.cxx:1418
combase.dll ASTAInvokeInApartment() applicationsta.cpp:470
combase.dll AppInvoke() channelb.cxx:1182
combase.dll ComInvokeWithLockAndIPID() channelb.cxx:2290
combase.dll ThreadDispatch() chancont.cxx:416
combase.dll ModernSTAState HandleMessage() modernsta.cpp:472
combase.dll ModernSTAWaitContext HandlePriorityEventsFromMessagePump() modernsta.cpp:1550
Windows.UI.dll Windows::UI::Core::CDispatcher ProcessMessage() dispatcher.cpp:339
Windows.UI.dll Windows::UI::Core::CDispatcher WaitAndProcessMessagesInternal() dispatcher.cpp:1953
Windows.UI.dll Windows::UI::Core::CDispatcher WaitAndProcessMessages() dispatcher.cpp:461
twinapi.appcore.dll _lambda_643db08282a766b00cec20194396f531_ operator() coreapplicationviewagilecontainer.cpp:1145
SHCore.dll _WrapperThreadProc() thread.cpp:321
ntdll.dll RtlUserThreadStart() rtlstrt.c:1152
Это в строке 76 моего App.cs, если это актуально.
rootFrame.Navigate(typeof(InitializePage), e.Arguments);
Ранее приложение прошло бесчисленное количество отправок в Windows Store без проблем, поэтому я совершенно не представляю, что произойдет сейчас.
Ответ №1:
Наконец, команда .NET native помогла мне решить эту проблему. Это было приложение слишком большое для компиляции с помощью 32-битного компилятора, и некоторое время не хватало памяти. Даже если компиляция прошла успешно, может произойти случайный сбой. Добавление true к PropertyGroup в project помогает решить проблему.
Комментарии:
1. Можете ли вы объяснить, куда вы добавляете
true
plz2. Хорошо, узнал в вашем блоге: «У нас есть 64-разрядный доступный компилятор, который может работать с большим объемом памяти. Можете ли вы попробовать добавить <Use64BitCompiler>true</Use64BitCompiler> в группу свойств в вашем основном файле CSPROJ? »
Ответ №2:
Согласно вашему описанию, ваше приложение, вероятно, работает по-разному на компьютерах с разной конфигурацией, поэтому для некоторых значений необходимо установить языковые или региональные настройки или что-то подобное, чтобы вызвать сбой приложения.
К сожалению, отслеживание стека UWP происходит из скомпилированного приложения, что делает его бесполезным при поиске причины в вашем коде.
Комментарии:
1. Спасибо за ваше предложение. Я протестировал несколько регионов и языков, но также не смог воспроизвести сбой, включая US-en, JP-jp, MY-en. Просто напишите команде сертификации, надеюсь, они смогут ответить, какой регион и язык они на самом деле используют.