0

WP7.1 用にビルドされた私のアプリ (Silverlight & C#) は 7.1 デバイスでは正常に動作しますが、WP8 デバイスでは動作しません。この理由により、アプリは Marketplace から削除されました (アプリは Marketplace にあり、WP8 まで多くのユーザーによって使用されていました)。リリース)。

エミュレータで問題をデバッグしてみました。WP8エミュレーターでアプリの7.1バージョンを実行しました。コード行の 1 つで、文字列を double に変換しています。

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

この行はスローします

タイプ 'System.FormatException' の例外が mscorlib.ni.dll で発生し、マネージド/ネイティブ境界の前に処理されませんでした

mscorlib.ni.dllが何なのか、さらに先に進む方法がわかりません。誰にもアイデアはありますか?注:アプリは WP7.1 で正常に動作します。

4

2 に答える 2

3

コード行の 1 つで、" double osVer = Convert.ToDouble("8.0.9903");" のように文字列を double に変換しています。

8.0.9903 は小数点が 2 つあるため、有効な double ではありません。

UPDATE : これが見られる場合、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 に答える