3

私は、世界中のほぼ50万台のPCにインストールされた.NetベースのシュリンクラップデスクトップアプリケーションでのWindowsエラー報告からのデバッグミニダンプを担当しています。これらはすべて、.NetフレームワークのさまざまなOSバージョンとさまざまなパッチバージョンを実行しています。これを行うには、次の3つのファイルの一致するバージョンが必要です

sos.dll
Mscorwks.dll
Mscordacwks.dll

私は過去に.msuファイルをダウンロードしてそれらからこれらのファイルを抽出することで中程度の成功を収めましたが、もっと簡単な方法があるはずです。

私の質問は、ミニダンプをデバッグできるように、これらのファイルの正しいバージョンをダウンロードできる単一のリポジトリがありますか?

4

2 に答える 2

2

フィールドからの問題を確実にデバッグ/再現/分析するには、これら3つだけのファイルがさらに必要です。基本的に、それらすべて(Windows、CLR、および(マネージド).NETフレームワーク)が必要です。

一部のファイルのリポジトリを認識していません。それぞれのバージョンをインストールする必要があります。

同じボックスに複数のバージョンの.NETCLR(1.1、2.0、4.0)をインストールし、.loadbyコマンドを使用して正しいSOS.dllをWinDBGにロードすることはできますが、サポートするバージョンに対して複数のWindowsをインストールする必要があります。 。

さらに、意味のあるデバッグを行うには、独自のアプリケーションの(プライベート)シンボルを含む、これらのコンポーネントの(パブリック)シンボルも必要です。

アプリケーションの3つのバージョンが出荷され、引き続きサポートされていることを考えると、引き続きサポートされている4つのオペレーティングシステムバージョン(Windows Vista SP1、Windows 7、Windows 7 SP1、Windows 8など)で実行され、12の組み合わせでシンボルを使用できます。

それがシンボルサーバーの目的です。パブリックマイクロソフトシンボルサーバーを使用することもできますが、(もちろん)独自のアプリケーション用のシンボルは含まれていません。

あなたが説明するアプリケーションの範囲/サイズを考えると、社内のシンボルサーバーをセットアップするのに適していると思います。これにより、顧客がまだ使用しているアプリのさまざまなバージョンのすべてのシンボルを保持できます(軽視しないでください)。

推奨読書:

ソース管理からデバッグセッション内で正しいバージョンのソースをフェッチできるように、ソースサーバーを設定することも検討できます。

于 2012-08-30T10:53:07.097 に答える
1

誰も私にこの質問に対する本当の答えを与えることができなかったので、私は私の「回避策」を提供します。これまで私が行ってきたのは、Microsoftサポートサイトを検索して、フレームワークのバージョンのms updateパッケージを見つけ、ダウンロードして、expand.exeを使用して抽出することです。その後、デバッグしているマシンを実行しているバージョンではなく、このバージョンにWinDbgを接続することができます。これは、プロセスを詳細に説明するブログ投稿ですhttp://sjbdeveloper.blogspot.com.au/2012/10/getting-correct-versions-of-net.html

于 2012-10-10T09:07:22.427 に答える