Как ни странно, try catch не может поймать это исключение, поэтому я не знаю, что делать.
Фрагмент кода:
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
public bool CanSilentlyUpdate()
{
try
{
// Disable the network before executing this method, and an exception is thrown:
// System.AccessViolationException :“Attempted to read or write protected memory.
// This is often an indication that other memory is corrupt.”
// Then the app crashes
return StoreContext.GetDefault().CanSilentlyDownloadStorePackageUpdates;
}
catch (Exception ex)
{
Debug.WriteLine(ex);
return false;
}
}
Журнал ошибок в средстве просмотра событий:
Приложение: MyApp.exe Framework Версия: v4.0.30319 Описание: Процесс был прерван из-за необработанного исключения. Информация об исключении: System.AccessViolationException в Windows .Services.Store.StoreContext.get_CanSilentlyDownloadStorePackageUpdates ()
Я знаю, что могу определить, звонить ли StoreContext.CanSilentlyDownloadStorePackageUpdatesby
, оценивая состояние сети, но когда я использую StoreContext.TrySilentDownloadStorePackageUpdatesAsync
для обновления приложения, если сеть отключена во время процесса обновления, приложение все равно будет cra sh.
Я думаю, что это такая же проблема, поэтому я надеюсь, что может быть лучший способ решить эту проблему.