10

ildasm.exe/ilasm.exe 実行可能ファイルの FileInfo/Path をプログラムで取得する方法はありますか? dll / exeファイルにいくつかの変更を加えた後、適切に逆コンパイルして再コンパイルしようとしています(PostSharpはコンパイル後にILを変更するのと同様のことをしていると思います)。

次のようなブログ投稿を見つけました。

var pfDir = Environment.GetFolderPath(Environment.SpecialFolders.ProgramFiles));
var sdkDir = Path.Combine(pfDir, @"Microsoft SDKs\Windows\v6.0A\bin");

...

ただし、このコードを実行したときにディレクトリが存在しなかったため (主に SDK のバージョンが 7.1 であるため)、ローカル マシンの正しいパスは@"Microsoft SDKs\Windows\v7.1\bin". ildasm.exe を実際に見つけられるようにするにはどうすればよいですか?

同様に、ilasm.exe にアクセスする方法に関する別のブログ投稿を次のように見つけました。

string windows = Environment.GetFolderPath(Environment.SpecialFolder.System);
string fwork = Path.Combine(windows, @"..\Microsoft.NET\Framework\v2.0.50727");

...

これが機能している間、Framework と Framework64 があり、Framework 自体に v4.0.30319 (Framework64 と同じ) までのすべてのバージョンがあることに気付きました。では、どちらを使用するかをどのように知ることができますか? 対象としている .NET Framework のバージョンに基づく必要がありますか?

概要:

  • ildasm.exe への正しいパスを見つけることを適切に保証するにはどうすればよいですか?
  • コンパイルする正しい ilasm.exe を適切に選択するにはどうすればよいですか?
4

2 に答える 2