5

私の状況:
先週、ILSpy を使用して .NET アセンブリを C# に逆コンパイルしました。それ以来、私はファイル/プロジェクトなどをマッサージすることに多大な労力を費やして、それらがすべて再び正しく動作するようにしました (多くの小さなバグ [主に ILSpy のコード生成プロセスが原因] とランダムな問題がありました。私が行くようにそれらを修正しています)。ゴールまであと数インチ、ゴールが見えてきました!

しかし、見よ、すべての XML コメントが欠落していることに気付きました。>.<

精査したところ、Visual Studio で生成されたすべてのコメントが内部にある .xml intelli-sense ファイルを見つけることができました。

達成したいこと:
これらのコメントを、生成された .xml intelli-sense ファイルからソース ファイルにコピーしたいと思います (このアセンブリには約 5000 のクラスがあるため、もちろん自動化された方法で)。

私の質問:
どのように進めればよいですか? このタスクを自動化するのに役立つツールはありますか?

4

2 に答える 2

1

Roslyn CTP for C# を使用して、コメントをソース ファイルに再挿入するツールを作成できます。( http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx ) Roslyn は、プログラムで操作してからファイルに書き戻すことができる C# コードの構造のようなツリーを作成します。

于 2013-06-17T16:07:12.747 に答える
1

コード ファイルはツール (ILSpy) を使用して生成されるため、コード スタイルと書式設定 (空白とインデント) はほとんどすべてのコード ファイルで同じになります。私がすることは

  1. その 5000 以上のクラス ライブラリの逆コンパイルが法律に違反しているかどうかを確認し、
  2. コード ファイルを解析し、クラス/メソッド/プロパティの定義を見つける単純なパーサーを作成する
  3. 私が見つけたものがxmlにあるものと一致するかどうかを確認してください
  4. すべて問題なければ、ファイル内の定義の位置がわかったので、見つかった xml タグをコード ファイルの新しい位置にコピーします。

PS: 文字列の置換/挿入を容易にするために、常にファイルの最後からファイルの先頭に挿入することを思い出してください。このようにして、行を挿入するたびに、挿入される他の行のインデックスは同じままになります。

于 2013-06-12T07:04:34.770 に答える