Windows mobile Microsoft Device Emulator存储卡驱动程序的替代方案

Windows mobile Microsoft Device Emulator存储卡驱动程序的替代方案,windows-mobile,emulation,driver,sd-card,Windows Mobile,Emulation,Driver,Sd Card,我们经常使用MicrosoftDeviceEmulator来开发和测试我们的移动应用程序(VS2008SP1、.NETCF2.0和3.5,Emulator版本9.0.21022.8)。我们的项目从映射到开发机器本地文件夹的模拟存储卡开始。这样,我们可以非常快速地部署、测试和调试更改,并且不受可用内部存储空间的限制 遗憾的是,存储卡驱动程序在访问大量文件时似乎非常不稳定,在访问共享文件夹上的资源时抛出随机FileNotFoundExceptions和UnauthorizedAccessExcept

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

遗憾的是,存储卡驱动程序在访问大量文件时似乎非常不稳定,在访问共享文件夹上的资源时抛出随机
FileNotFoundException
s和
UnauthorizedAccessException
s

以下演示代码将随机崩溃,
i
(从8到>100)的值不同,出现
未经授权的访问异常
。在内部存储器上创建文件时,代码不会崩溃

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"))))
    {

    }
  }
}
private const string PATH=@“\Storage Card\Temp\”;
私有无效按钮1\u单击(对象发送者,事件参数e)
{
如果(!Directory.Exists(PATH))
{
CreateDirectory(路径);
}
对于(int i=0;i<1000;i++)
{
使用(var stream=File.Create(Path.Combine(Path,string.Concat(i,.tmp)))
{
}
}
}
例如:

我在网上搜了很多遍,发现有些人也在为同样的问题苦苦挣扎,但没有找到任何解决办法

我已经尝试过的:

  • 使用FAT32格式的卷进行共享
  • 以管理员身份执行所有程序
  • 大大减少了共享文件夹中的文件数
  • 使用RAM磁盘驱动程序进行测试(工作正常,但无法从开发机器直接访问)
  • 将模拟设备的RAM增加到256 MB
  • 测试了所有可用的不同模拟器映像(不会改变任何内容)
  • 冷启动或热启动仿真器设备
我的问题是:

  • Microsoft Device Emulator上的共享文件夹是否有其他选择
  • 是否有办法修复内置机制的行为(例如注册表设置)
  • 模拟设备上是否可以安装其他驱动程序来修复此问题

您是否尝试过监视emulator映像上可用的RAM量?我猜你的“设备”内存不足。您正在运行什么(即VS2008)?我没有耗尽RAM(当示例程序崩溃时,200 MB可用)。此外,这并不能解释为什么程序在模拟器的内部存储器上工作。我将在问题中添加一些关于我的开发环境的信息。