0

深刻な問題があり、昨日ハードディスクがクラッシュし、たくさんのプロジェクトがありました。それらのほとんどを失いましたが、回復したのは、クライアントに送信したすべてのデバッグフォルダーです(ほとんどはデスクトップアプリケーションです)。ほとんどの作業でコードを回復できませんが、デバッグフォルダーがあります。質問は、それらからコードを回復する方法があるかどうかです。過去に経験したことのある人がいると思いますが、これに関する情報があれば助けてください。

デバッグフォルダ内のファイル:例私はアプリケーションをアップルにします

apple.exe                     type=application
apple.pdb                     type=PDBFIle
apple.vshost                  type=Application
apple.vshost.exe.mainfest     type=MANIFEST File

追加情報:

私のラップトップのハードディスクがクラッシュしたので、現在、別のラップトップでUSBドライブとして使用しています。3つのパーティションがありましたが、4つのi、j、k、lが表示されます。以前は私のD:ドライブが正常に動作していたものの1つで、150GBのうち72GBが空いていることがわかります。それらの残りは情報がないだけです、私がそれらを数分間何もクリックしないとき、それはフォーマットドライブなどを言います...あなたがそれを修正する方法を知っているならそれは素晴らしいでしょう。

ありがとうございました

4

1 に答える 1

5

コンパイルされたバイナリを含むデバッグフォルダにアクセスできて本当に幸運でした。マネージド言語(C#)で作業しているという事実は、多くの.NETデコンパイラーの1つを使用して、それらに含まれているソースコードを読み取り可能な形式で表示できることを意味します。Visual Studioに最初に入力したものと完全に同じではない場合がありますが、システムがクラッシュした場合に通常予想されるよりもはるかに優れています。

以前はこのタスクにRedgateの.NETReflectorを推奨しいましたが、最近、彼らは逆コンパイラユーティリティの無料バージョンを廃止することを決定し、私が個人的に同意しなかったいくつかのビジネス慣行を採用しました。繰り返しになりますが、彼らのツールはおそらくまだ最高です。そのため、コードを取り戻すために30日間の試用版をダウンロードすることを検討してください。誰が知っている、あなたはあなたが買うほどそれを好きかもしれません!

私のような安っぽいスケートや、真に自由なソフトウェアに熱心な人なら、SharpDevelopを開発しているのと同じ人々によって開発されたILSpyのように、Reflectorが無料でなくなった後に生まれた無料の代替手段の1つを試すことができます。さらに多くの選択肢がここにリストされています。

どちらの逆コンパイラユーティリティを選択した場合でも、コピーをダウンロードしてその実行可能ファイルを開きます。次に、[ファイル]メニューから[開く]を選択し、.exeソースを回復する最初のコンパイル元に移動します。ユーティリティは、アプリケーションの名前とアセンブリに関するいくつかのメタデータを表示します。ここから、正しいファイルを開いたことを確認できます。

ILSpyと.NETReflectorの両方で、アプリケーション名の横にある[+]トグルをクリックして、そのリストを展開できます。リファレンス(アプリケーションが使用するDLL)、リソース(アプリケーションにコンパイルされたリソースファイル)、コードで定義された名前空間など、より拡張可能なアイテムがたくさん表示されます。個々の名前空間を展開すると、その名前空間で定義されているすべてのタイプが表示され、タイプを展開すると、そのタイプで定義されているすべてのタイプ、メソッド、メンバーなどが階層の下に表示されます。左側のソースツリーで個々のアイテムをクリックすると、右側の出力ペインに逆コンパイルされたコードが表示されます。ILSpyと.NETReflectorはどちらも、コードをC#として表示することをサポートしています。これは非常に読みやすいように見えるはずです。

たとえば、ILSpyを使用してILSpy.exeアプリケーション自体を開くと、次の出力が生成されます。

 

ここでは実際に何も壊すことはできないので、ナビゲートして、すべてを回復できるものを探索して確認し、これがどれほどうまく機能しているかに驚いています。すべてがDLLでもEXEと同じように機能します。

次に、コピーと貼り付けを開始します...

次のビジネスの順序は、システムを再び安定させることです。ハードディスクがクラッシュした場合、そのドライブを二度と信頼したくないことは間違いありません。使い切ってすぐに新しいものを購入し、それをワイプして、Windowsをリロードします。

それが終わったら、コードを保存するために将来使用するソース/バージョン/リビジョン管理システムのセットアップに取り掛かることを間違いなく望んでいます。すべての賢い開発者は、これを非常に多くの理由で使用します。Google検索で詳細情報を検索します。さまざまなオプションがたくさんあります。どちらを選ぶかは重要ではありません。重要なのは、1つ選ぶことです。

于 2012-01-16T04:45:43.283 に答える