0

我的环境 Windows 8 Pro 和安装了 WP 7.1.1 SDK 的 Visual Studio 2010 Ultimate。

我有一个带有 SQL CE 数据库的 WP 7.1.1 应用程序。有 2 个数据库,一个随初始包一起提供,另一个存储在独立存储中。在 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,文件名 = \Applications\Install\{GUID}\Install\{FileName}.sdf,SeCreateFile]

此外,让模拟器运行并卸载应用程序并重新运行它可以使其工作。

更新它在第一次运行时起作用的原因是因为上面的代码没有被执行(故意)。再次运行它会使上面的代码运行并轰炸。

这曾经在 Windows 7 和没有 VS 2012 的情况下正常工作。可能导致问题的原因是什么?

更新在使用新的 Windows 8 设置进行任何更改之前,我将所有更改都还原了回来,它按预期工作。一旦我使用服务器资源管理器使用 VS 2010 打开 sdf 文件并对其进行修改,我在调试应用程序时就会遇到同样的问题。诡异的!

4

1 回答 1

0

目前 Mango 支持 3.5 CE,从这里http://www.microsoft.com/en-us/download/details.aspx?id=12264安装 SQL CE 3.5应该可以解决问题

于 2012-09-22T10:29:13.317 回答