ふにゃるんv2

もとは、http://d.hatena.ne.jp/Wacky/

.NET Frameworkのソース付きシンボルを一気にダウンロードする方法

この間、.NET Frameworkのソース付きシンボルが公開されまして、嬉々として設定作業していました。

前提:手作業でシンボルを取得する

Visual Studio 2008の設定方法に関しては、既に皆さんが指摘されている通り、以下のURLを参照すればOKです。


設定で私が引っかかったのは、以下の点。

  • シンボルファイルをダウンロードするには、デバッグ→モジュール ウィンドウを開いて、ダウンロードしたいモジュールを指定し、右クリックして「シンボルの読み込み」を行う

1
1 posted by (C)wacky

2
2 posted by (C)wacky

説明の上の方ばかり見て、この作業が必要な事に暫く気づきませんで、何度も設定し直していました。<私のオバカー

改良:面倒だから自動で取得する

と、とりあえずダウンロードを済ませた後、今回提供されたシンボルサーバー機能を少し調べていたら、以下のやり方でシンボルファイルを、がばっと取得する方法がある事に気づきましたので、メモ。


まず、Debugging Tools for Windowsを取得しインストールします。


次に、コマンドプロンプトを起動し、Debugging Tools for Windowsのインストールされたディレクトリに移動します。

C:\>c:
C:\>cd C:\Program Files\Debugging Tools for Windows


ここで、おもむろにsymchk.exeユーティリティを使って、以下のようにコマンドを打ち込みます。

C:\Program Files\Debugging Tools for Windows>symchk /r C:\WINDOWS\Microsoft.NET\
Framework\v2.0.50727 /su SRV*C:\WINDOWS\Symbols\*http://referencesource.microsof
t.com/symbols
...
SYMCHK: vjscustom.3082.dll   FAILED  - vjscustom.1033.pdb mismatched or not foun
d

SYMCHK: FAILED files = 151
SYMCHK: PASSED + IGNORED files = 621

3
3 posted by (C)wacky


各引数の設定の意味は、以下の通りです。

引数 意味
/r C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"フォルダの全てのDLLに適合するシンボルファイルをゲットしなさい
/s SRV*C:\WINDOWS\Symbols\*http://referencesource.microsoft.com/symbols "http://referencesource.microsoft.com/symbols"からシンボルファイルをゲットし"C:\Windows\Symbols"フォルダに入れなさい。

これを、各.NETのDLLが存在するフォルダに対して適用すれば、現時点で取得可能なソース付きシンボルファイルを取得できます。
(余談ですが、URLを"http://msdl.microsoft.com/download/symbols"に変えると、通常のシンボルファイルが取得できます)


後は、ソースコード自体も抽出できると嬉しいんですけど、どうやればいいんですかね?
(pdbファイルから抜き取るのかなぁ)

追記

よく読んでいたら、何かそれらしい事が書いてますね。

10) Can I just download all of the code at once?
(私はすぐに、ただコードのすべてをダウンロードしてもよいですか?)
Not currently, but we are currently working on enabling this functionality in the future.
(現在でないときに、私たちだけが現在、将来この機能性を可能にするのに働いています。)

for Excite翻訳

将来実装予定…っていう意味かな?