66

私が取り組んできた Visual Studio 2010 プロジェクトの数は、TFS リポジトリでバージョン管理されています。最近、休暇に出かけ、コンピューターの OS を Windows 7 64 ビットにアップグレードしました。

Visual Studio を再インストールしました。Team Foundation Server に接続してプロジェクトを表示できますが、バインディングだけが正しく機能していません。ほとんどの場合、ソース管理下にあるファイルはないようですが、いくつかのプロジェクトでは、ソース管理バインディングはルート フォルダーでは問題ありませんが、プロジェクト ルートから離れたサブフォルダーでは機能しません。

バインドを元に戻し、ソース管理から開き、フォルダーを削除して最新バージョンを取得しようとしました。これらのどれも問題を解決していません。

バインディングの復元について何か考えはありますか?

アップデート

調べてみると、「無効な」プロジェクトのパスに余分なフォルダーがあるように見えます...どうやってそこに入ったのかわかりませんが、これは私のマッピングから外れているようです.

4

10 に答える 10

91

バインドを元に戻そうとしたとおっしゃいましたが、ソース管理に再バインドしようとしましたか?

Visual Studio の場合:

  • 問題の解決策を開く
  • ソリューション エクスプローラーでソリューションを選択する
  • [ファイル] -> [ソース管理] - > [ソース管理の変更]
    Visual Studio 2013/2015: [ファイル] - > [ソース管理] -> [詳細設定] -> [ソース管理の変更]
  • バインドされているが正しく機能していないプロジェクトをアンバインドします。
  • 現在バインドされていないすべてのプロジェクトをバインドします。
于 2013-01-02T20:49:49.290 に答える
61

無効なバインドがあり、プロジェクトのバインド解除/バインドが機能しない場合は、次のことを試してください。

  1. ソース管理の変更でプロジェクトのバインドを解除
  2. ソリューション エクスプローラーでプロジェクトをアンロードします (Web サイト プロジェクトの場合、「プロジェクトのアンロード」はコンテキスト メニューではなく、「Web サイト」メニューにあります)。
  3. ソリューション エクスプローラーでプロジェクトをリロードする

いつも私のために働いています...

于 2014-04-11T11:06:32.890 に答える
10

私はジョエルに同意します-通常、バインドを解除して再バインドすると修正されます。

ただし、再バインドが機能しない場合は、ソリューションファイルを直接編集してみてください。TFSバインディングがソリューションファイルに2回あり、何らかの理由で不正確であるように見える場合があります。プロジェクトの数が間違っている可能性があり、プロジェクトの数が間違っている可能性がありますが、ソリューションファイルにはまだリストされています。

これが発生した場合(非常にまれです)、ファイルを編集して、本来あるべき方法で作成します。たとえば、TFSバインディングの2番目のセット(GlobalSection(TeamFoundationVersionControl))を削除するか、表示されたその他の不一致を修正します。次に、ソリューションをリロードすると、通常は問題が修正されます。この修正は、最後の手段としてのみ使用します。けれど。

于 2013-01-02T22:40:51.990 に答える
2

新しく作成されたワークスペースを使用して、新しくインストールされた Visual Studio で既存の (以前は機能していた) ソリューションを初めて開いたときに、この問題が発生しました。

バインドを解除して再バインドしても、問題は解決しませんでした。しかし、Get Latest Version を実行すると消えてしまいました。TFS はファイルが競合していると表示し、ローカル コピーをオーバーライドして競合を解決しました。以前は無効だったバインディングが有効として表示されました。

于 2016-11-17T13:59:56.670 に答える
1

これの変種に遭遇し、自分で解決策を見つけなければならなかったので、ここに追加します。

TLDR::
1)プロジェクトがバインドされていないことを確認します。
2)プロジェクトのすべてのファイルを手動で選択し、(プロジェクト自体ではなく) ソース管理に追加します。これにより、TFS の下に問題のあるプロジェクトのルート フォルダーが作成されます
。3)ソース管理エクスプローラーで、問題のあるプロジェクトのルート フォルダーに移動し、手動で追加します。ソース管理への.csproj

そして、私がそこにたどり着いた方法/理由の全文:

上記のすべての回答が機能しない場合 (*adospace の回答はこれに関連している可能性がありますが、よくわかりませんでした:P)

私のソリューションには、純粋にリソース プロジェクトである 9 つのうち 2 つのプロジェクトがありました。すべてを tfs に取り込んでソース管理にマップすると、無効なバインド (2 つのリソース プロジェクトのみ) が断固として残り、何も修正しませんでした。最後に、プロジェクトの個々のファイルを tfs (.resx) に手動で追加しようとしたとき、TFS は、.exe のようにファイルが無視されているという警告をスローしました。この警告により、とにかくファイルを TFS に追加することができ、同時に、プロジェクト自体は断固としてバインドされていないまま、完全なプロジェクト フォルダー構造が作成されました。しかし、そこから各 .csproj を手動で TFS に追加することができ、魔法のようにプロジェクトが適切にバインドされ、ソース管理下に置かれるようになりました。私'

于 2019-11-29T20:25:20.157 に答える
1

If your're still fighting with TFS binding invalid status I report here a "gem" I've found in an old (2005) MSDN forum (https://social.msdn.microsoft.com/Forums/en-US/801b2490-776d-43a8-afef-adcedd78f02d/vsts-change-source-control-status-invalid?forum=tfsgeneral):

This is due to a heuristic used in the validation code for binding. The heuristic does an existence check for all of the files in the project and will only return "valid", if at least half of the files are present in the source control repository. Since web projects have no project file, any file residing in the web project folder is considered "part of the project". Apparently you had enough uncontrolled files to tilt the percentage of controlled project files to under 50%, thus causing an invalid status.

In other words, if you have a project that has many files uncontrolled (this is especially true when you opt-out check-in for folders like node_modules or public in a web project) and the number of these files are more than 50% of the total files in the folder, TFS binding status are invalid whatever you do.

I could verify this rule just removing the correct number of files until the binding status became invalid and just adding a new one (uncontrolled) get the invalid status.

This behavior is still present in VS 2019 6.3 (Azure DevOps).

I don't know if there is a way to disable this heuristic, but I'm pretty sure that it's a fake Invalid status, i.e. tfs binding is actually working correctly and that is just an erroneous message.

于 2019-10-15T12:14:42.123 に答える
0

ソリューションの名前を変更したときに、このエラーにも遭遇しました。上記のすべてを試しましたが、状況は解決しませんでした。

私にとっての実際の解決策は、ビルド定義を新しいソリューション名で編集することでした

  1. マイ ビルド > ビルド定義を右クリック > ビルド定義を編集 > プロセス
  2. 「1. Required > Solution to build」は古い Soluton 名を参照していることに注意してください。
  3. 「ビルドするソリューション」の横にある「...」をクリックし、
  4. 新しいソリューションを見つけてください。クリックして
  5. ビルド定義を保存する
  6. 再構築
于 2014-07-09T13:10:33.133 に答える
-1

ソリューションが既にソース管理に追加されていることを確認してください: [ファイル] > [ソース管理] > [ソリューションをソース管理に追加]。

于 2016-07-04T20:23:08.813 に答える