12

私のプロジェクトが持つすべての依存関係に新しいマシンを再接続しようとしていますが、現在のハードルは TFS バインディングです。私はこれを見る:

ここに画像の説明を入力

...[ファイル] | [ファイル] を選択したとき ソース管理 | ソース管理を変更...、しかしセルの値は読み取り専用です。「バインド」ボタンを連打すると「解のマッピングが見つかりませんでした」と怒られます。ええ、私は知っています、それが私がそれらを再バインドしたい理由です。どのように?

アップデート

ファイルの選択 | ソース管理 | ワークスペース、ワークスペースのリストを取得します (ただし、「リモート ワークスペースを表示する」チェックボックスを選択した後でのみ)、現在関心のあるワークスペースは問題ないように見えます。

ここに画像の説明を入力

…だから、これの何が問題なのですか?「$\tlog」がリモート ソースに接続されていると想定しています。私のローカルマシンのソース、「ローカル」セルが示す場所です.だから...何が問題なのですか?ペアをお互いに再紹介できないのはなぜですか?

更新 2

再起動すると、「関連するソース管理プラグインがインストールされていないか、初期化できませんでした。このエラーの一般的な原因には、サーバーが利用できないことやワークスペース マッピングが正しくないことが含まれます。」ここの回答に基づいて:コードを別のフォルダーに移動したことを Visual Studio Team Foundation Server に確認するにはどうすればよいですか? 、「永久にアンバインド」できるようにしました。しかし、ワークスペースを見ると、セットアップは以前とまったく同じです。接続は以前とまったく同じです (確かに機能しませんが、完全にバインドを解除するとワークスペースから削除されると思います)。

更新 3

Visual Studio をもう一度再起動すると、バインドが切断されたように見えます。エラー メッセージは表示されなくなりました。ただし、ワークスペースではまだ接続されていると表示されます!?!

更新 4

「変更」ダイアログを編集できるようになりましたが、接続は正確に見えますが、ステータスが無効であることがわかります。

ここに画像の説明を入力

ローカル パスが正しいことはわかっていますが、サーバー パスについては (私の知る限り) 何もできません (変更されていないと確信しています)。この「生産性」ソフトウェアが大好きです。

更新 5

私はそれを試しました。「GlobalSection(TeamFoundationVersionControl)」セクションからすべてを削除し、ファイル | を選択しました。ソース管理 | ソース管理を変更...、次に、ソリューション内の最初のプロジェクトを強調表示して、[バインド] ボタンを選択します。これは次のとおりです。

ここに画像の説明を入力

...「バインド」ボタンを押した後、次のようになります。

ここに画像の説明を入力

IOW、マッドビルにはまだ喜びがありません(ケーシーは三振です)。接続済みと表示されますが、無効です。理由を説明できればいいのですが、それについて何が無効なのですか? 手がかりをください、TFS!

更新 6

さて、私はもう少し進んで、いくつかのプロジェクトをバインドしました。

ここに画像の説明を入力

それでも9人は不屈のままでした。.sln ファイルを変更して、これらのバインディングを修正しようとしました。前述のように、ソリューションの 9 つのプロジェクトのステータスは「無効」で、残り (2 倍以上) は「有効」でした。

そこで、有効なものと in- を比較したところ、すべての「無効」に「../../」や「..\」などのパス「説明」が追加されていることがわかりました。アウト、.sln をそれで置き換え、... 何もありません。無効者は無効のままでした。

次に、ここで DaveShaw が提案した「核オプション」を採用しました: TFS 問題: ソリューションのソース管理オプション (最新、チェックアウト、チェックインを取得) がありません

...しかし、まだ行きません - 変化なし。有効なものは有効のまま、無効なものは無効のままです。

この TFS ナンセンスにかかる時間内に、すべてのコードを書き直すことができたはずです!

そうではありませんが、それでもかなりイライラします。

更新 7

私が試したことと起こっていることの詳細については、http: //social.msdn.microsoft.com/Forums/vstudio/en-US/08d3e956-62a8-4874-8468-f178d12ac67c/why-is- を参照してください。要求された URL と物理パス ブラウザが使用しようとしている実際のものとは異なる?prof=必須

更新 8

TFSがすべきことは、ローカルフォルダー構造を提供できるようにすること、またはサブフォルダーを持たず、「開始点」だけを提供できるようにすることであり、TFSはリポジトリの構造に基づいてフォルダー構造を埋める必要があるようです、最新のコードを入力します。

それどのように機能するか、または機能する場合... gr8! しかし、私はまだそれを行う方法を見つけることができませんでした...

更新 9

これが私がそれがうまくいくと思う方法です:

1) Windows エクスプローラーで、ローカル フォルダーを作成し、ソリューションに適した名前を付けます。

2) Visual Studio を開き、Visual Studio のスタート ページで [TFS に接続] を選択します。

3) [ファイル] | [ファイル] を選択します。ソース管理 | ワークスペース... | 編集...

4) [ワークスペースの編集] ダイアログの [作業フォルダー] 部分のレコード/行で、[ローカル フォルダー] エントリをクリックして編集できるようにします。

5) 省略記号ボタンを押して、[フォルダー] ダイアログを表示します。

6) 手順 1 で作成したフォルダーを選択し、[OK] ボタンを押します。

これで、「作業フォルダー:」セクションに次のようなレコードが作成されました。

Status  Source Control Folder   Local Folder
=====   ==================  ==========
Active  $/Whatever      C:\Whatever

7) この「OK」ボタンを押します。

注: これを行うと、次のようなダイアログが表示されます。

「ワークスペースが変更されました バージョン管理の 1 つ以上の作業フォルダーが変更されました。バージョン管理から最新のファイルを取得して、ローカル ワークスペースを更新しますか?」

私は「はい」をつぶして見ました:

"進行状況を取得 C:\Whatever\\\..."

...そして、プログレスバーの継続的に更新されるテキストは、それが私が期待することを行っていることを示しているように見えました (リポジトリファイルをローカルフォルダーにコピーし、必要に応じてサブフォルダーを作成します)。

8) [ワークスペースの編集] ダイアログの [閉じる] ボタンを押します。

9) 次に、Visual Studio のスタート ページで [プロジェクトを開く...] を選択し、C:\Whatever に移動します。

10) 太陽が出て、青い鳥が歌い始め、イルカが振り付けられた喜びの演出で中距離で水から飛び出し始めます。

ただし、私の場合、Windows エクスプローラーは、目的のオブジェクト (Whatever.sln) が 2 つのローカル フォルダーにあると表示しますが、それらのフォルダーをクリックすると、そのようなファイルは表示されません。1 つありますが、Windows エクスプローラーが示す場所ではありません...その下の別のフォルダーです。そのプロジェクトを選択して開くと、次のようになります。

「Web プロジェクトは現在、URL ' http://localhost/<different one>' を使用するように構成されています。Web サーバーでは、この URL が別のフォルダ 'C:\Project\ccr\TLog\Development\Development\Externals\CommonLogin' にマップされています。この Web プロジェクトのフォルダを指すように、この URL を再マップしますか?」

私は「はい」と言います

別のプロジェクトでも同じメッセージが表示されるので、もう一度 [はい] ボタンを選択します。

プロジェクトがロードされます。ソリューション内のプロジェクトの正しいコレクションのようです。

今回本当にうまくいったのかもしれません(ファッションの後)。その資格とは、ソリューションをコンパイルすると、Visual Studio が 11251 エラーがあることを通知するということです...おそらく、参照の追加などの問題です。「ソリューション内の 1 つ以上のプロジェクトが正しく読み込まれませんでした。詳細については、出力ウィンドウを参照してください。」

いずれにせよ、太陽を浴びて幸せの青い鳥の声を聞く代わりに、スゲは湖から枯れ、鳥はさえずりません。

更新 10

Jason Williams の回答に従って、ようやく機能するようになりました。ただし、参照が壊れているため、まだ 11,257 のエラー メッセージが表示されます。これらを修正するプロセスを自動化する方法はありますか、または一度に 1 つのアセンブリを処理する必要があります (1 つ以上のエラー メッセージを修正するものもあると思いますが、それでも...)

更新 11

これは、以前のサクラメント キングが「Get Specific Version」について話していたことです (彼の回答に続くコメントを参照してください)。

ここに画像の説明を入力

4

2 に答える 2

10

あなたのアップデート9は本質的に正しいように聞こえます。ステップ 1 をスキップできます。

ただし、手順 5 では、マッピングで二重フォルダーを作成しないように注意してください (たとえば、$/Whatever という名前の TeamProject があり、Whatever という名前のルート フォルダーがある場合、実際には $/ というパスがあります)。何でも/何でも、または $/ を D:\Code\Whatever にマップすることもできます-どちらの方法でも、D:\Code\Whatever\Whatever になる可能性があります)。これは問題ではないかもしれませんが、ソース コードを作成した人が相対パス参照を使用して再配置可能にすることを考えていなかった可能性があります。その場合、最終的に正しい絶対パスになるかどうかを確認する必要があります。正しくコンパイルします。

ワークスペースを作成すると、変更内容でワークスペースを更新するかどうかを尋ねられます (ステップ 7)。これは正しい計画ですが、私はそれを信用しません。TFS は、ワークスペースの各フォルダーに何があると考えているかを記憶しているため、過去に行ったことによって混乱した場合は、いくつかあると判断する可能性があります。ソース コードの更新は行わないでください。したがって、この手順を確実に実行するには、[いいえ] をクリックしてから手動でソース管理エクスプローラーに移動し、ルート フォルダーを右クリックして [特定のバージョンを取得] を実行します。次に、両方のチェックボックスをオンにして、すべてのファイルを取得し (ファイルがあると思われる場合でも)、すべてを強制的に上書きし (書き込み可能なファイルも含む)、ソース コードの完全なコピーを確実に取得します。

(9) では、マップされたワークスペース (ローカル ドライブ) からソリューションを開く必要があります。[ファイル] > [ソース管理] > [ソース管理の変更] に移動し、ソリューションがバインドされていることを確認します。そうでない場合は、すべてを選択して [バインド] をクリックします。これはすべてを修正する魔法のボタンであり、世界の誰もこのユーザー インターフェイスを理解していません。なぜそれが存在するのか、なぜそれほど複雑なのか、ダイアログの他のオプションがまったく使用されていないのになぜ存在しないのかを理解することはできません。バインディングが行うことは、ローカル ディスクのどこに解決策があるかを書き留めるだけなので、空の感覚と、これを作成するダイアログでこのようにいじる必要がなくてもうまくいくはずだというアイデアのヒントが残ります。ソース管理内から何かを使用していて、「

このバインド プロセスは、ここで行った編集によって、影響を受けるファイルが自動的にチェックアウトされることを意味します。(これが起こらない場合は、[ツール] > [オプション] > [ソース管理] をチェックして、設定が適切であることを確認してください)

ここで、コンパイル時にエラーが発生した場合、考えられる原因は次のとおりです。

  • サーバー上のコードはビルドされません。たとえば、誰かがすべての依存関係をチェックインするのを忘れているなどです。
  • サーバー上のコードは問題ありませんが、元の作成者が持っていた場所とは異なる PC 上の場所にマップしており (たとえば、あなたは D:\ を使用し、彼は C: を使用しました)、彼はそれを再配置可能にしていません。もしそうなら、最も簡単な解決策は、彼のマッピングがどのように機能するかを調べて、それを自分の PC に正確に複製することです (ヒント: 他の人のマッピングをワークスペース エディターで表示し、それらをコピーして自分のマッピングに貼り付けることができます)。もちろん、実際の解決策は、すべての壊れた (絶対) ファイル参照を追跡し、それを相対化して解決策を再配置可能にすることです。
  • サーバー上のコードは問題ありませんが、ワークスペース マッピングが Web サーバーの設定方法と一致しません。Visual Studio が 2 つが一致しないことに気付いたとき、[はい] をクリックしました (わからない) 「いいえ」ではなく、「はい、すべてを台無しにしてください」)を意味します(「ソース管理マッピングに間違いがあるに違いありません。戻って、最初にもう一度確認してみます」)。この場合、ソース管理マッピングが Web サーバーがコードを見つけると考える場所にコードをドロップすることを再確認し、(ロットを削除し、マッピングを修正し、Get Specific Version を実行して TFS に強制的にクリーン コピーを適切な場所に配置してください) おそらく、多くの問題が消えるでしょう。
  • サーバー上のコードは問題ありませんが、Visual Studio のひどい参照システムにより、一部の参照が壊れています。基本的に、指定した場所で参照されているアセンブリが見つからない場合、"エラー: そこにはありません" と言う代わりに、PC を介して発見の旅に出て、似たような名前の別のものを選びます。そして「そうすべきだ」と言います。わずかな割合 (99%) のケースでは完全に失敗し、残りの 1% では完全に壊れてしまいます。エラーのリストで探す場所は、通常は一番下にあります。最後のエラーは多くの場合失敗した参照であり、先行する 1000 個のエラーは単なる副作用です。また、各プロジェクトの参照で黄色の感嘆符アイコンを確認してください。これらは欠落している参照です。ついに、説明できないビルド エラーを引き起こす MyAssembly.dll または "MyAssembly" プロジェクトへの参照がある場合は、ハード ドライブで "MyAssembly.dll" を検索してください。ビルド プロジェクト全体でその dll の 3,245 個のコピーが見つかったら、「正しい」ものを除いてすべて削除し、ビルドの成功が改善されるかどうかを確認します。それ以上は、エラーを読んで 1 つずつ解決するだけです。

残念ながら、これほど遠く離れた場所から正確な答えを出すのは簡単ではありませんが、少なくとも本質的な考えが正しいことを確認し、苦しみを診断するのに役立ついくつかの手がかりが得られることを願っています. 私のお金は、すべてが所定の位置にクリックするだけで必要な魔法の設定とはわずかに異なるワークスペース マッピングに当てられます。あなたが迷路の中心から3文字以上離れていなかったことを知るためだけに.

ステップ9の手がかりから、それは次のようなものかもしれません

$/TLog  -> C:\Project\ccr\TLog

それよりも

$/TLog -> C:\TLog
于 2013-07-09T22:34:33.043 に答える