2016-01-13 3 views
1

Приложение Windows Store завершает сертификацию, потому что я пишу папку InstalledLocation, а не локальную папку.Запись в папку InstalledLocation

Я загружаю существующий SQLite db в приложение, если оно еще не существует.

Ниже мой код:

private static string dbName = "flashcards2015a.db"; 
    private static string dbPath = string.Empty; 

public MainPage() 
    { 
     this.InitializeComponent(); 
     LoadDataTask(); 
     LoadDecksNames(); 
    } 
    private async void LoadDataTask() 
    { 
     await CreateIfNotExists(dbName); 
    } 
    private async Task CreateIfNotExists(string dbName) 
    { 
     if (await GetIfFileExistsAsync(dbName) == null) 
     { 
      StorageFile seedFile = await StorageFile.GetFileFromPathAsync(Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, dbName)); 
      await seedFile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder); 
     } 
    } 

Как я могу изменить код в локальную папку, чтобы получить файл базы данных?

+2

Вы уверены, что это проблема? Код, который вы показываете, не записывается в место установки. Кажется, что правильно скопируйте базу данных семян из места установки в локальное хранилище. Там, где это неправильно, это то, что он не ждет LoadDataTask, поэтому LoadDecksNames, вероятно, вызывается до того, как LoadDataTask скопировал файл. Не зная, что такое LoadDecksNames, я не знаю, возвращается ли она к семену или сталкивается с какой-то другой проблемой. –

ответ

Смежные вопросы