私の環境 Windows 8 Pro に Visual Studio 2010 Ultimate と WP 7.1.1 SDK がインストールされています。
SQL CE データベースを使用する WP 7.1.1 アプリケーションがあります。2 つのデータベースがあります。1 つは最初のパッケージに付属しており、もう 1 つは分離ストレージに格納されています。Application_Launching で、コードは両方のデータベースのバージョンを比較し、パッケージのバージョンの方が大きい場合は、Isolated Storage のバージョンを置き換えます。シミュレーターを閉じてアプリを最初に実行すると、アプリは正常に起動し、データベースをコピーしてストレージを分離します。2回目の実行で次のコード:
using (SportsDataContext db = new SportsDataContext(DBConnectionString))
{
var setting = db.Settings.Where(s => s.SettingID == (Int16)Settings.DatabaseVersion).SingleOrDefault();
if (setting == null)
return false;
newVersion = setting.Value;
}
例外をスローします:
データベース ファイルへのアクセスは許可されていません。[ 1981,ファイル名 = \Applications\Install\{GUID}\Install\{FileName}.sdf,SeCreateFile ]
また、エミュレーターを実行したままにし、アプリをアンインストールして再実行すると、機能します。
更新 最初の実行で機能する理由は、上記のコードが (意図的に) 実行されていないためです。もう一度実行すると、上記のコードが実行されて爆撃されます。
これは、以前は Windows 7 で VS 2012 を使用せずに正常に動作していました。問題の原因は何ですか?
更新新しい Windows 8 セットアップで変更を加える前に、すべての変更を元に戻しましたが、期待どおりに動作します。サーバー エクスプローラーを使用して VS 2010 で sdf ファイルを開いて変更するとすぐに、アプリのデバッグ時に同じ問題が発生します。変!