1

我们大量使用 Microsoft Device Emulator 来开发和测试我们的移动应用程序(VS 2008 SP1、.NET CF 2.0 和 3.5,模拟器版本 9.0.21022.8)。我们的项目从映射到开发机器的本地文件夹的模拟存储卡开始。这样我们就可以非常快速地部署、测试和调试更改,并且不受可用内部存储空间的限制。

可悲的是,存储卡驱动程序在访问大量文件时似乎非常不稳定,在访问位于共享文件夹上的资源时会抛出随机FileNotFoundExceptions 和s。UnauthorizedAccessException

以下演示代码将使用不同的值i(从 8 到 > 100)随机崩溃UnauthorizedAccessException。在内部存储上创建文件时,代码不会崩溃。

private const string PATH = @"\Storage Card\Temp\";

private void button1_Click(object sender, EventArgs e)
{
  if (!Directory.Exists(PATH))
  {
    Directory.CreateDirectory(PATH);
  }

  for (int i = 0; i < 1000; i++)
  {
    using (var stream = File.Create(Path.Combine(PATH, string.Concat(i, ".tmp"))))
    {

    }
  }
}

例子:

未授权访问异常

我详尽地搜索了网络,发现有些人正在为同样的问题而苦苦挣扎,但没有找到任何解决方案。

我已经尝试过的:

  • 使用 FAT32 格式的卷进行共享
  • 以管理员身份执行所有程序
  • 大幅减少共享文件夹中的文件数量
  • 使用了 RAM 磁盘驱动程序进行测试(效果很好,但不能直接从开发机器访问)
  • 将模拟设备的 RAM 增加到 256 MB
  • 测试了所有可用的不同模拟器图像(不会改变任何东西)
  • 冷启动或热启动模拟器设备

我的问题是:

  • Microsoft Device Emulator 上的共享文件夹是否有任何替代方法?
  • 有没有办法修复内置机制的行为(例如注册表设置)?
  • 是否可以在模拟设备上安装另一个驱动程序来解决此问题?
4

0 回答 0