.Net Reflector または別のツールを使用して、exe の元のビルドの場所/パスを確認します。

StackOverflow https://stackoverflow.com/questions/2185626

  •  25-09-2019
  •  | 
  •  

質問

現在、実稼働サーバー (c# .net 2) にデプロイされている EXE があります。このアプリにいくつかの変更を加えて再デプロイするタスクを継承しました。

このアプリを作成したのは私ではなく、さまざまなネットワーク ドライブ上のいくつかの異なるフォルダーに、このアプリの時間の経過によるさまざまな呪文であり、Visual Studio プロジェクトの候補となる可能性のある、いくつかの異なる Visual Studio ソリューション (~10) が含まれていることが示されています。これはこのexeを生成するために使用されましたが、運用中のEXEと一致するどのプロジェクトが使用されたかわかりません。

.net Reflector または別のツールを使用して、EXE のコンパイルに使用されたソース ファイルの元のファイル パスを確認する方法はありますか?, その後、逆方向に作業して正しい Visual Studio ソリューションを特定し、そこに変更を加え始めることができます。

ありがとう

役に立ちましたか?

解決

本番環境で実行されているものの起源を知ることができないとしたら、これはとんでもない状況のように思えます。

それにもかかわらず、考えられる解決策の 1 つは、.exe アセンブリのデバッグ ヘッダーを確認することです。デバッグ シンボルを使用してコンパイルされている場合、そこには pdb の元のフル パスが含まれている可能性があり、それがどこに構築されたのかを知ることができます。 。で入手できます。 dumpbin Windows SDK の一部であるツール。

出力の例を次に示します。

  Debug Directories

        Time Type       Size      RVA  Pointer
    -------- ------ -------- -------- --------
    4A0F2A94 cv           51 0006672C    6492C    Format: RSDS, {77468AA8-8494-46AC-87DF-422721517504}, 8, C:\sources\mcs\class\Mono.Cecil\obj\Debug\Mono.Cecil.pdb

さらに良いことに、pdb が手元にある場合は、次のようなツールを使用できます。 pdbダンプ アセンブリのコンパイルにどのファイルが使用されたかを知るため。

他のヒント

//www.codeplex:あなたの最善の策は、おそらくでhttpリフレクター&ファイル生成プラグインのいずれかを使用することです.COM / reflectoraddins のファイルにコードをダンプします。変更を行う前に、必ず再構築することができ作るもののます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top