WP8设备/模拟器上的WP7.1应用程序 - mscorlib.ni.dll中出现'System.FormatException'

时间:2012-12-19 14:10:11

标签: windows-phone-7 windows-phone-7.1 windows-phone windows-phone-8

我为WP7.1构建的应用程序(Silverlight& C#)在7.1设备上运行良好,但在WP8设备上运行不正常,由于这个原因,应用程序已从市场中移除(该应用程序在Marketplace中存在并被许多人使用用户直到WP8发布)。

我尝试在模拟器中调试问题。我在WP8模拟器中运行了7.1版本的应用程序。在其中一行代码中,我将字符串转换为double,为

double osVer = Convert.ToDouble("8.0.9903");

此行抛出

  

发生了'System.FormatException'类型的异常   mscorlib.ni.dll并未在托管/本地边界之前处理

我不知道mscorlib.ni.dll是什么以及如何继续进行。有没有人有任何想法? 注意:该应用在WP7.1上正常运行。

2 个答案:

答案 0 :(得分:3)

  

在其中一行代码中,我将字符串转换为double,为“double osVer = Convert.ToDouble(”8.0.9903“);”。

8.0.9903不是有效的双精度型,因为它有两个小数点。

<强>更新: 如果看到这一点,WP7和WP8都会抛出一个异常,所以看起来WP8上的应用程序从某个地方获得了不同格式的字符串。

答案 1 :(得分:2)

Convert.ToDouble将使用当前的文化。因此,如果应用程序是使用具有差异小数分隔符的区域性执行的,则将抛出FormatException。

在大多数情况下,您需要在调用Convert.ToDouble时明确提供文化:

Convert.ToDouble("8.0", CultureInfo.InvariantCulture);