.Netローカリゼーションの問題
-
03-07-2019 - |
質問
現在、VSTO(最新バージョン+ sp1)および.Net 3.5を使用してExcel 2007アドインを構築しています
コードは、単にTopプロパティとLeftプロパティを使用してチャートの位置を取得し、XMLファイルに保存します。
直面している問題は、Vista Ultimate + Excel 2007 +英語環境を使用してxmlを生成すると、コードが完全に機能することです。これをWindows Server 2003 + Excel 2007 +フランス語環境に移動すると、TopおよびLeftプロパティを設定しようとするとクラッシュします。さらに、サーバーマシン上の両方の値に対して常に4を返します。
地域と言語の設定を試してみましたが、これまでのところ何も変更していません。
VSTOオブジェクトによって返されるfloat値ではなく、整数として値を保存しようとしました。
誰かが間違った考えをしているのなら、私を正しい方向に向けてください。
さらにトレースを行ったら編集します...
解決
これが役立つかどうかはわかりませんが、System.Xml.XmlConvertクラスをチェックアウトすることをお勧めします。このクラスを使用すると、ロケールに依存しない文字列値にデータ型をシリアル化できます。別のマシンでxmlを抽出すると、この同じクラスを使用して値を適切なデータ型に変換し直すことができ、現在の環境のカルチャを想定します。
他のヒント
自分が何をしているか、どのエラーが表示されているかについての詳細情報を投稿する必要があります。おそらく、デフォルトのCultureInfo.CurrentCultureではなくCultureInfo.InvariantCultureを使用して数値をフォーマット/解析する必要があります。