私のアプリケーションにSQliteデータベースを「シード」する必要があります。ポストHow to deploy a database file with a Xamarin.form app?の@Kasperのようにコードを使用しました。Package.Current.InstalledLocation.GetFileAsyncとStorageFile.CopyAsyncが期待通りに機能しない
私のコードはUWPのように見えます。
public async Task<String> GetDBPathAndCreateIfNotExists()
{
String filename = "birdsnbflys.db3";
bool isExisting = false;
try
{
StorageFile storage = await ApplicationData.Current.LocalFolder.GetFileAsync(filename);
isExisting = true;
}
catch (Exception)
{
isExisting = false;
}
if (!isExisting)
{
StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync(filename);
await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder, filename, NameCollisionOption.ReplaceExisting);
}
return Path.Combine(ApplicationData.Current.LocalFolder.Path, filename);
}
私は、「ローカルマシン」その上で、これを実行すると、私はPackage.Current.InstalledLocationフォルダを見れば、データベースファイルがある
StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync(filename);
「ハング/から返すことはありません」。
私はデバイスエミュレータの一つでこれを実行すると、私はアプリを終了し、ファイルがApplicationData.Currentに今あることを再起動した場合、それはこの場合
await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder, filename, NameCollisionOption.ReplaceExisting);
「ハング/から返すことはありません」 .LocalFolderので、アプリケーションが実行されます。
私のアプリの必要性を考えれば、これを同期させる方法はうれしいですが、Microsoftが非同期以外のものを提供しているようには見えません。
これを期待どおりにする方法についての考えや提案はありますか?
おかげで、すべての デイブ
**非同期**は、UWPアプリケーションで行う方法です。 synchrone APIがリリースされることを期待しないでください。 – Herdo