私はVisual Studio 2012(TFSソース管理下にあります)でソリューションを開いていましたが、TFSサーバー(2010)は停止していました。その後、ファイルの1つに変更を加えて保存しようとすると、TFSサーバーがダウンしているという正確な言葉を思い出せないというファイルを上書きするかどうかを尋ねるプロンプトが表示され、次のメッセージが表示されます。出力ウィンドウ
This solution is offline. [Team Foundation Server: http://tfs1:8080/tfs/server]
The solution was offline during its previous session and will remain offline.
ファイルの変更が保留中の変更の中にあるものとして認識され、ソリューション全体がオンラインに戻るようにするにはどうすればよいですか。
私はオンラインで解決策を検索し、見つけました この解決策 しかし、レジストリの変更にそれほど熱心ではありませんでした。
私はもっと良い方法を見つけました。ソリューションエクスプローラの一番上にあるソリューション名を右クリックして、オンラインにするオプションを選択しますこれをクリックすると、オフラインのときに変更されたファイルを選択し、ソリューションをオンラインにすることができました。
解決策を見つけた後、私は以下を見つけた msdn forum thread 上記のことを確認した。
ソリューションの対応する.SUOファイルの名前を変更します。 SUOファイルには、他のさまざまなグッズの中でも、TFSステータス(オンライン/オフライン)が含まれています。
これは、「ソリューションエクスプローラの一番上にあるソリューション名を右クリックして「オンラインにする」オプションを選択する」が失敗した場合にのみ実行してください(たとえば、VS2015プレビューをインストールしたため)。
(AutoReconnectまたはOfflineレジストリ値がない場合のための上記の解決策からの追加ステップ)
Visual Studio 2015バージョン14の場合
File > Source Control > Go Online
に移動して、変更したファイルを選択し、そしてプロセスを終了します。
あなたはレジストリエディタを使用することができます。
上記の解決策のどちらも私にとってはVisual Studio Community 2017 v15.7.1では機能しませんでした。どういうわけか、コンテキストメニューに "Go Online"オプションがありませんでした。ここで提案されているようにレジストリ編集を試みましたが、それはバインディングを見つけることができなかったというエラーを私に表示するだけでした。私にとってうまくいったのは、[ソース管理の変更]メニューからサーバーにソリューションを再バインドすることです。
File->Source Control->Advanced->Change Source Control
に移動して、ソリューションがソース管理にバインドされていることを確認してください。そうでない場合は(私のように)次にバインドボタンをクリックしてください、それは自動的にオンラインTFSサーバを検索し、それにあなたの解決策を思い出させるでしょう。
完全なソリューションを得るには、ここで2つのステップを実行する必要があります
最初に開いているソリューションをクリックしてから、[ファイル]-> [ソース管理]-> [オンラインにする]の順にクリックし、オフライン中に変更されていると表示されているすべてのファイルのチェックを外します。
ソース管理エクスプローラーから最新バージョンを取得しないでください。その結果、競合を解決するように求める一連のファイルを表示するダイアログが表示される可能性があります。代わりにこれを行う
ソース管理エクスプローラーで、最新版を取得するフォルダーを右クリックし、[詳細設定-特定のバージョンを取得]をクリックします。バージョンタイプのドロップダウンで[最新]を選択し、[チェックアウトされていない書き込み可能なファイルを上書きする]という最初のチェックボックスをオンにします。これにより、サーバー上の最新のフォルダーとフォルダーが自動的に同期されます
私はそれほど努力せずに別の方法を見つけました。
ソリューションを右クリックして[保留中の変更を元に戻す]をクリックするだけです。
次に、VSはあなたがアンドゥしたい、または特定のファイルではない、実際に変更されたファイルを尋ねます。
これで、実際の変更が依存関係にあるようなファイルではnoをクリックでき、残りは元に戻すだけです。これはあなたの実際の変更を失わないでしょう