1

InvalidTeam Foundation Server (TFS) のソース管理に関して... プロジェクトのステータスを からに変更するにはどうすればよいですValidか?

バックグラウンド

TFS のいくつかのソリューションとプロジェクトを再編成中です。この場合:

  1. 分岐操作が最初に実行され、既存のソリューションとプロジェクトが TFS リポジトリ内の新しい場所に移動されました。
  2. プロジェクトの階層がごちゃごちゃしていたので、TFS Move操作を使用してプロジェクトを適切な場所に移動しました。
    • このステップは、多くのプロジェクトで実行されました。それらの 99% では、バインドは問題ありません。
  3. その後、変更が TFS にコミットされました。

さまざまなアプローチ

1

ビジュアルスタジオで...

  • 問題の解決策を開く
  • ソリューション エクスプローラーでソリューションを選択する
  • [ファイル] -> [ソース管理] -> [ソース管理の変更] を選択します
  • バインドされているが正しく機能していないプロジェクトをアンバインドします。
  • 現在バインドされていないすべてのプロジェクトをバインドします。

  1. ディスクからすべてのソース コードを削除します。
  2. Visual Studioを起動します。
  3. ソース管理エクスプローラーウィンドウを開く
  4. ワークスペースのドロップダウン =>ワークスペース=> 選択MyWorkspace=>編集... =>詳細設定
    • すべてがよさそうだ
  5. ソリューションのプロジェクトに関連するTFS保留中の変更がないことを確認しました。
  6. ソース管理 => 最新のものを取得
  7. Notepad ++でソリューション(例MySolution.sln)を開きました
  8. セクション全体を削除:
    • GlobalSection(TeamFoundationVersionControl) = preSolution
  9. ソリューション ファイルを保存しました。
  10. Notepad ++でプロジェクトファイル(例:MyProject.vcxproj)を開きました
  11. 次の XML 要素を削除しました。
    • SccProjectName
    • SccAuxPath
    • SccLocalPath
    • SccProvider
  12. プロジェクトファイルを保存しました。
  13. Visual Studio => ファイル => 開く => ソリューション
  14. ソリューションエクスプローラーMySolution
  15. ファイル => ソース管理 => 詳細設定 => ソース管理の変更
    • ステータス列にMySolution、次のMyProjectようにリストされます。Not Controlled
  16. クリックMySolutionしてバインド
  17. [ OK ] をクリックしました。ここまでは順調ですね。
  18. ファイル => ソース管理 => 詳細設定 => ソース管理の変更
    • ステータス列には、次のMyProjectように記載されています。Not Controlled
  19. クリックMyProjectしてバインド
    • ステータス列で、としてMyProjectマークされるようになりましたInvalid
  20. ここで [OK] をクリックすると、次のエラーが表示されます。
    • 「一部のプロジェクトは、正しくない可能性のあるサーバーの場所にバインドされています。プロジェクトのファイルの大部分が含まれていないか、それらのファイルが指定されたサーバー フォルダーに対して正しい場所にないため、場所が正しくない可能性があります。おそらく、ソリューション内のすべてのバインドを修正する必要があります。ただし、一部が正しくない場合でも、引き続きこれらのプロジェクトを指定された場所にバインドすることができます。"
  21. クリック: サーバー バインディングを修正する
    • ダイアログウィンドウが消えます。
  22. クリック: わかりました
    • 以前のエラーが再表示されます。
  23. クリック: これらのバインディングを続行します
    • ダイアログウィンドウは消えますが、私はまだこの問題を解決していません:(

環境

  • Visual Studio プレミアム 2013 (v12.0.21005.1 REL)
  • Windows 8.1 エンタープライズ (64 ビット)
  • このソリューションには、他のいくつかのプロジェクト (C++ & C#) が含まれており、バインディングは問題ありません。
  • このソリューションには、現時点ではビルド定義がありません。

追加資料

4

3 に答える 3

0

通常、[1] コンパイル可能でなく、[2] 本番環境の準備ができていない (または少なくとも QA の準備ができている) コードをチェックインすることは避けます。

この場合、私は自分のルールを無視することに決め、今では代償を払っています:(

ソリューション

プロジェクトの場所は TFSMoveコマンドを使用して適切に変更されましたが、いくつかの C++ プロジェクトには古いパスを指す参照がありました。その結果、これらのプロジェクトのバインディングステータスは次のInvalidとおりです。

  • プロジェクトフィルターには、古い場所に存在しないファイルが含まれていました。
    • MyProject=>ThirdPartyLibフィルター =>HeaderOfSomeLibraryFile.h
  • MyProject.vcxprojには無効なプロジェクト参照がありました。
    • MyProject=> Properties=> Common Properties=>References

これらの問題が修正された後、MyProject.vcxprojバインディング ステータスは自動的に に切り替わりましたValid

于 2015-06-10T13:31:33.140 に答える