-1

C#でプログラムされたツールがあり、その実行可能ファイルは多くのユーザー間で共有されています。

一部の PC セットで、特定の変数がクリアされる (つまり、リストが独自にクリアされる) ことがわかりました。ツールが例外をスローする原因となります。

同じツールは、残りの PC のすべての条件でうまく機能します。

これらの数台の PC を他のすべての PC と比較すると、RAM、OS、タスク ロードなどに違いはありません。 また、ツールとその依存関係、および使用手順もすべて同じです。

私はこの奇妙な行動に困惑しています。私にとっての他の問題は、影響を受ける PC とそのユーザーが別の国にいることです。そのため、PC パラメーターを手動で確認したり、デバッグしたりすることはできません。取得したログに依存しています。

あなたのいずれかが同様の問題に直面できますか?

同じ構成の 2 台の異なる PC が異なる動作をする方法を教えてください。環境変数、システム パラメータなどの依存関係はありますか。

よろしく、サチン

4

5 に答える 5

0

貴重な提案とヒントをありがとうございます。

CultureInfo が異なるため、エラーが発生しました。この実行可能ファイルは、データを取得するために XLS ファイルも読み取っていました。カルチャ情報のミスマッチが原因で、XLS の読み取りが成功せず、いくつかの変数セットが破損していました。

これを解決するには、次の 2 つのオプションがありました。 1. MS Office 言語パックをインストールします。

@氏。Jeroen van Langen スペシャル ありがとうございます!

よろしく、サチン

于 2013-09-19T09:31:19.147 に答える
0

地域/文化設定の問題を検索する必要があると思います。この行「私にとっての他の問題は影響を受ける PC であり、そのユーザーは別の国にいます。」変数が double から文字列へ、またはその逆に関係しているというベルを鳴らします。リストは解析例外によって中断される可能性があります。

開始時に表示/ログに記録するとどうなりますかThread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator

次に、cultureinfo で解析する必要があります。

例えば:

CultureInfo usCultureInfo = new CultureInfo("en-US");

double result;

if (!double.TryParse("0.231312", NumberStyles.Float, usCultureInfo, out result))
{
}

別の問題として、適切な .NET バージョンがインストールされているか (フル/クライアント プロファイル)

于 2013-09-05T14:30:58.283 に答える
0

どのデバイスもランダム メモリの問題ストレージの不一致の影響を受ける可能性があり、Windows マシンでは悪名高い WINDOWS REGISTRY がプログラムの実行方法に影響を与える可能性のあるさまざまな値を保持する可能性があります。

動作しているマシンでメモリ診断を実行する信頼できるツールを実行し、それを動作していないマシンと比較することをお勧めします

ツールのロジックを改善して、変数の内容をチェックし、try/catch 操作を実行して根本的な原因を検出し、それらのエラーをログに記録して何が起こっているかを診断します

于 2013-09-05T13:30:41.783 に答える