0

我为 WP7.1 构建的应用程序(Silverlight 和 C#)在 7.1 设备上运行良好,但在 WP8 设备上运行良好,因此该应用程序已从 Marketplace 中删除(该应用程序在 Marketplace 中并被许多用户使用,直到 WP8释放)。

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

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

这条线抛出

在 mscorlib.ni.dll 中发生了“System.FormatException”类型的异常,并且在托管/本机边界之前未处理

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

4

2 回答 2

3

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

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

更新:如果看到这种情况,WP7 和 WP8 都会抛出异常,因此看起来您在 WP8 上的应用正在从某个地方获取不同格式的字符串。

于 2012-12-19T15:03:19.787 回答
2

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

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

Convert.ToDouble("8.0", CultureInfo.InvariantCulture);
于 2012-12-19T14:38:24.887 回答