.Net Reflector または別のツールを使用して、exe の元のビルドの場所/パスを確認します。
-
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ダンプ アセンブリのコンパイルにどのファイルが使用されたかを知るため。
他のヒント
あなたの最善の策は、おそらくでhttpリフレクター&ファイル生成プラグインのいずれかを使用することです.COM / reflectoraddins のファイルにコードをダンプします。変更を行う前に、必ず再構築することができ作るもののます。