web-dev-qa-db-ja.com

Visual Studio 2013およびTFSで[保留中の変更を元に戻す...]をクリックした後、変更を元に戻すにはどうすればよいですか

Visual Studio 2013とTFSを使用して、チェックインする前に多くの作業を行いました。その後、誤って保留中の変更を元に戻しました...ソリューションのプロジェクトの1つにのみ適用されると考えました。残念ながら、すべてのプロジェクトに適用されました。変更を元に戻すにはどうすればよいですか?

この質問は link の前に尋ねられました。ある人は、リフレクターを使用してdllをコピーすることを提案しました。 Reflectorをダウンロードしましたが、使用方法がわかりません。 Reflectorを使用して変更を元に戻すにはどうすればよいですか。

17
navig8tr

信じられない!私が失ったすべてのコードをあきらめて書き直した後、ファイルを回復することができました。 [保留中の変更を元に戻す]を押した後、ソリューションを再構築することはありません。次に、ソリューションを閉じ、ワークスペース全体をコピーし、別の名前で保存しました。次に、元のソリューションを再開しました。次に、紛失したファイルの元の場所から「既存のアイテムを追加」を使用しました。次に、コピーしたワークスペースに移動して、失われたファイルがそのままの状態で元の場所にあることを見つけました(そして、ここがクールな部分です)。すごい!私は自分のコードを書き直す前にこれをしたいだけです!

私にとって、この解決策は偶然に見つかったものですが、将来この情報を他の誰かが使用できることを願っています。変更を元に戻した後、ソリューションを構築したことがないため、ファイルが元の場所に残っていたが、ソリューション自体には表示されなかったことがあります。

11
navig8tr

あなたの助けのためだけに。 stackoverflowの質問リンク共有として。彼はあなたがあなたのプロジェクトを構築していないなら、それを言おうとしています。 Reflectorで最後にビルドされたdllを開き、ファイルのコードを確認してコードを回復できます。

JetBrainsの Reflector または dotpeek のようなものを使用できます。

Dot-peekの詳細については、こちらをご覧ください link

しかし、保留中の変更を元に戻した後にプロジェクトをビルドした場合、私の知る限り、コードを取得することは不可能です。

23
Dnyanesh

これは今日私に起こりましたが、それは棚上げされていないバージョンでローカルの変更を上書きした後です。 dllを逆コンパイルしようとしましたが、古すぎて変更がありませんでした。 「AppData\Local\Temp\TFSTemp」にあるTFS一時diffファイルの変更をようやく見つけました。ファイルの名前はすべて「vctmp4316_370233.cs」のような名前でしたが、それらはすべてそこにあり、ありがたいことに、変更を復元できました。

MSTest単体テストがある場合に試すことができるもう1つのことは、ソリューションの "TestResults"フォルダーでdllを探すことです。

最後のステップは、これが二度と起こらないように、何らかのバックアップシステムをセットアップすることです。

8
Dave A

元に戻すボタンを押すと同様の操作を行い、意図しないファイルを削除しました。ソリューションエクスプローラーで[すべてのファイルを表示]アイコンをクリックしました。ファイルが表示されるようになったので、右クリックして[プロジェクトに含める]を選択するだけで済みました。

1
Tony Cimaglia