0

我的環境使用Visual Studio 2010 Ultimate的Windows 8 Pro安裝了WP 7.1.1 SDK。WP 7.1.1不允許訪問數據庫文件

我有一個WP 7.1.1應用程序與SQL CE數據庫。有兩個數據庫,一個來自初始包,另一個存儲在獨立存儲中。在Application_Launching代碼比較兩個數據庫的版本,並且如果來自軟件包的版本更大,它將替換隔離存儲中的版本。 在模擬器關閉的第一次運行應用程序時,應用程序開始正常工作並複製數據庫以隔離存儲。在第二次運行 下面的代碼:

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年,文件名= \應用程序\安裝\ {GUID} \安裝\ {文件名}。自衛隊,SeCreateFile]

而且,離開模擬器運行和卸載應用程序,然後重新運行它也可以正常工作。

UPDATE 它在第一次運行的原因是因爲上面的代碼沒有執行(有意)。再次運行它會使上面的代碼運行併發生炸彈。

這用於在Windows 7和沒有VS 2012之前正常工作。什麼可能導致該問題?

UPDATE 在對新的Windows 8設置進行任何更改之前,我恢復了所有更改,並且按預期工作。只要我使用服務器資源管理器打開VS 2010中的sdf文件並修改它,調試應用程序時就會遇到同樣的問題。奇怪的!

+0

你如何比較這兩個數據庫的版本?用查詢? –

+0

是的,我將它存儲在數據庫中的一張表中 –

+0

您能否顯示您用來將文件複製到隔離存儲的代碼?也許你正在打開一個句柄,從而鎖定文件。 –

回答

相關問題