Поток CreateFileAsync UWP завершается при компиляции в режиме выпуска с проверенной цепочкой инструментов Compile with .NET Native

У меня есть приложение UWP, и я пытаюсь сохранить файл конфигурации, используя приведенный ниже код. Это отлично работает с отключенной цепочкой инструментов Compile with .NET Native и в режиме отладки. Однако после проверки цепочки инструментов Compile with .NET Native поток завершается при попытке создать файл. Как мне обойти это?

public async void SaveConfig()
{
    // serialize JSON to a string
    string json = JsonConvert.SerializeObject(uris);

    // write string to a file
    var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("config.json", CreationCollisionOption.ReplaceExisting);
    await FileIO.WriteTextAsync(file, json);
}

person Steve Fitzsimons    schedule 13.11.2017    source источник
comment
Посмотрите на rd.xml для ваших типов сериализации.   -  person Peter Torr - MSFT    schedule 14.11.2017
comment
Вы проверили локальную папку C:\Users\xxx\AppData\Local\Packages\.....(your package name)......\LocalState? По результатам моего тестирования ваш код действительно был выполнен.   -  person Timo    schedule 14.11.2017
comment
Я запускаю его внутри службы, используя проект Template10. Я проверю, есть ли у этого побочные эффекты   -  person Steve Fitzsimons    schedule 14.11.2017


Ответы (1)


Проблема, скорее всего, кроется в методе async void, выполнение которого не ожидается до конца. В этом случае решением было бы изменить заголовок метода.

public async Task SaveConfigAsync()

и вызовите такой метод

await SaveConfigAsync();
person A. Milto    schedule 15.11.2017