Как я могу переустановить мой проект в TFS?

Попытка привязать новую машину ко всем зависимостям моего проекта, моим текущим препятствием является привязка TFS. Я вижу это:

enter image description here

... когда я выбираю File | Контроль источника | Change Source Control..., но значения в ячейках доступны только для чтения. Когда я затормаживаю кнопку "Привязать", меня ругают "Сопоставления для решения не могут быть найдены". Да, я знаю, почему я хочу их перестроить. Как?

UPDATE

Выбор файла | Контроль источника | Рабочие области, я получаю список рабочих областей (но только после того, как я установил флажок "показать удаленные рабочие пространства" ), и тот, который мне сейчас интересен, выглядит отлично:

enter image description here

... так что с этим не так? Я предполагаю, что "$\tlog" подключен к удаленному источнику; и источник на моей локальной машине - это где "локальная" ячейка указывает, так что... какая проблема? Почему это не позволит мне снова ввести пару друг другу?

ОБНОВЛЕНИЕ 2

При перезагрузке я получал: "Связанный подключаемый модуль управления версиями не установлен или не может быть инициализирован. Общие причины этой ошибки включают недоступность сервера и/или неправильные сопоставления рабочего пространства". и на основе ответа здесь: Как получить Visual Studio Team Foundation Server, чтобы увидеть, как я переместил код в другую папку?, я разрешил ему "навсегда отвязать". Но когда я смотрю в Workspaces, настройка точно такая же, как и раньше: соединения точно такие же, как и раньше (это правда, они не работают, но я думаю, что навсегда отвязывание удалит их из Workspaces).

ОБНОВЛЕНИЕ 3

Еще один перезапуск Visual Studio, и привязки действительно выглядят отрубленными - не более err msg. Тем не менее, они все еще показывают, что они связаны в Workspaces!?!

ОБНОВЛЕНИЕ 4

Теперь я могу отредактировать диалог "Изменить", но даже если соединения кажутся точными, это говорит о том, что статус недействителен:

enter image description here

Я знаю, что локальный путь правильный, и я ничего не могу сделать (AFAIK) о пути к серверу (и я уверен, что это не изменилось), так почему же он недействителен? Должен любить это "продуктивное" программное обеспечение.

ОБНОВЛЕНИЕ 5

Я пробовал это. Я удалил все из раздела "GlobalSection (TeamFoundationVersionControl)", выбрав File | Контроль источника | Измените Source Control..., затем с первым из проектов в выделенном решении выберите кнопку "Bind". Из этого вышло:

enter image description here

... к этому после смятия кнопки "Bind":

enter image description here

IOW, до сих пор нет радости в Mudville (Кейси вычеркнул). В нем говорится, что он подключен, но что он недействителен. Было бы неплохо, если бы это объяснило, почему - что недействительно? Дайте мне ключ, TFS!

ОБНОВЛЕНИЕ 6

Ну, я получил немного больше и получил некоторые из проектов для привязки:

enter image description here

Но девять остались непокорными. Я попытался исправить эти привязки, изменив файл .sln. Как уже упоминалось, девять проектов в решении имели статус "Недействительный", а остальные (более чем в два раза) были "Действительными"

Итак, я сравнил действительный с in, и я увидел, что у всех "недопустимых" были дополнительные "описания" пути, такие как "../../" и ".." и т.д. Итак, я раздели все это, заменил .sln этим и... ничего. Инвалиды остались недействительными.

Затем я взял "ядерный вариант", предложенный DaveShaw здесь: Ошибка TFS: нет параметров управления версиями (получить последние, выезд, регистрация) для решения

... но до сих пор нет выхода - никаких изменений; действительный оставался действительным, инвалид оставался недействительным.

Я мог бы переписать весь код за время, которое берут на себя эту TFS!

Не совсем, но это все еще довольно неприятно.

ОБНОВЛЕНИЕ 7

Более подробно о том, что я пробовал и что происходит, см. http://social.msdn.microsoft.com/Forums/vstudio/en-US/08d3e956-62a8-4874-8468-f178d12ac67c/why-is-the-requested-url-and-physical-path-the-browser-is-trying-to-use-different-from-the-actual?prof=required

ОБНОВЛЕНИЕ 8

Мне кажется, что то, что должен сделать TFS, это предоставить вам локальную структуру папок или, еще лучше, тот, у которого нет подпапок, только "начальная точка", а затем TFS должна заполнить структуру папок на основе структуру репозитория и заполнить это с помощью последнего кода.

Если это так, как это работает или может работать... gr8! Но я еще не смог узнать, как это сделать...

ОБНОВЛЕНИЕ 9

Вот как я думаю, он должен работать:

1) В проводнике Windows вы создаете локальную папку, называя ее соответствующим образом для своего решения

2) Вы открываете Visual Studio и выбираете "Подключиться к TFS" на начальной странице Visual Studio

3) Вы выбираете File | Контроль источника | Рабочие области... | Изменить...

4) В записи/строке в разделе "Рабочие папки" диалогового окна "Редактировать рабочее пространство" вы щелкните запись "Локальная папка", чтобы иметь возможность редактировать ее

5) Вы замяли кнопку многоточия, чтобы открыть диалоговое окно "Папка".

6) Затем вы выбираете папку, созданную на шаге 1, и затираете кнопку "ОК".

Теперь у вас есть запись в разделе "Рабочие папки:", который выглядит следующим образом:

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

7) Теперь вы можете замять эту кнопку "ОК"

Примечание. Когда я это делаю, я получаю диалог, в котором говорится:

"Изменено рабочее пространство Одна или несколько рабочих папок в управлении версиями изменены. Вы хотите получить последние файлы из управления версиями, чтобы обновить локальные рабочее пространство? "

Я пюре "Да" и увидел:

"Прогресс C:\Whatever \\\... "

... и индикатор выполнения постоянно обновляемого текста, казалось, указывал, что он делает то, что я ожидаю (копирование файлов репозитория в локальную папку, при необходимости создание подпапок).

8) Вы замяли кнопку "Закрыть" в диалоговом окне "Редактировать рабочее пространство"

9) Затем вы выбираете "Открыть проект..." на начальной странице Visual Studio и переходите к C:\Whatever

10) Солнце выходит, синие птицы начинают петь, а дельфины начинают выпрыгивать из воды на среднем расстоянии в хореографическом проявлении восторга.

Однако в моем случае, что происходит, Windows Explorer говорит, что объект моего желания (Whatever.sln) находится в двух локальных папках, но при нажатии на эти папки нет такого файла. Существует один, но не там, где Windows Explorer говорит, что это... это еще одна папка ниже этого. И когда я выбираю этот проект для открытия, я получаю:

"В настоящее время веб-проект настроен на использование URL-адреса" http://localhost/<different one> ". Веб-сервер имеет этот URL-адрес, сопоставленный с другой папкой" C:\Project\ccr\TLog\Development\Development\Externals\CommonLogin ". Вы хотите перенаправить этот URL-адрес, чтобы указать на эту папку веб-проекта?

Я говорю "Да"

Я получаю то же сообщение для другого проекта и снова выбираю кнопку "Да" .

Проект загружается. Кажется, это правильный набор проектов в решении.

Возможно, это действительно сработало на этот раз (после моды). Что я имею в виду под этой квалификацией, так это то, что когда я компилирую решение, Visual Studio говорит мне, что есть ошибки 11251... возможно, это вопрос добавления ссылок и еще чего-то. Я получил следующее: "Один или несколько проектов в решении были загружены неправильно. Подробнее см. В окне вывода".

Во всяком случае, вместо того, чтобы купаться на солнце, слушая голубую птицу счастья, осока засохла от озера, и птицы не петь.

ОБНОВЛЕНИЕ 10

Я, наконец, получил его на работу, следуя ответу Джейсона Уильямса; однако у меня все еще есть 11257 сообщений об ошибках из-за неработающих ссылок. Есть ли способ автоматизировать процесс их исправления, или я должен пропустить через них одну сборку за раз (я знаю, что некоторые исправят более 1 err msg, но все же...)

ОБНОВЛЕНИЕ 11

Здесь, что бывший король Сакраменто говорил о re: "Получить конкретную версию" (см. комментарии после его ответа):

enter image description here

Ответ 1

Ваше обновление 9 звучит, по сути, правильно. Вы можете пропустить шаг 1.

Однако, похоже, что на шаге 5 заботимся о том, что вы не создаете двойную папку с вашим сопоставлением (например, если у вас есть TeamProject с именем $/Whatever и у него есть корневая папка под названием Whatever, то у вас на самом деле есть path $/Независимо от того, что бы вы ни делали, или вы могли бы сопоставить $/to D:\Code\Whatever - так или иначе вы можете оказаться в D:\Code\Whatever\Whatever). Это может быть не проблема, но возможно, что тот, кто создал ваш исходный код, возможно, не думал о том, чтобы сделать его перемещаемым, используя относительные ссылки на пути, и в этом случае вам может потребоваться убедиться, что он попадает в правильный абсолютный путь или может не быть правильно скомпилировать.

Как только вы создадите рабочее пространство, он спрашивает (шаг 7), если вы хотите обновить рабочую область с помощью изменений. Это правильный план, но я бы не стал ему доверять - TFS помнит, что он думает, что у вас есть в каждой папке вашего рабочего пространства, поэтому, если он запутался в чем-либо, что вы когда-либо делали в прошлом, он может решить, что у вас есть исходного кода и не обновлять его. Чтобы на этом шаге быть пуленепробиваемым, нажмите "Нет", а затем вручную перейдите в проводник исходного кода, щелкните правой кнопкой мыши корневую папку и выполните "Получить конкретную версию". Затем отметьте оба флажка, чтобы они могли получить все файлы (даже если они думают, что у вас есть) и принудительно перезаписать все (даже записываемые файлы), и вы обязательно получите полную копию исходного кода.

В (9) вам нужно открыть решение из вашей отображаемой рабочей области (локального диска). Перейдите в меню "Файл" > "Управление источником" > "Изменить управление источником" и убедитесь, что решение связано. Если нет, выберите все и нажмите "Привязать". Это волшебная кнопка, которая исправляет все, и никто в юниверсе не понимает этот пользовательский интерфейс, почему он существует, почему он настолько сложный и почему ни один из других параметров в диалоговом окне не существует, когда они никогда не используются ни для чего. Все, что связывает это, записывается там, где у вас есть решения на вашем локальном диске, поэтому у вас останется пустое чувство и намек на идею, что это должно работать просто так, чтобы вам не приходилось так себя вести в диалогах, которые делают нет смысла делать что-то, что должно произойти автоматически, если вы используете что-то изнутри источника управления, и вы находитесь в режиме "онлайн".

Этот процесс привязки должен означать, что любые исправления, которые вы сейчас делаете, приведут к тому, что затронутые файлы будут проверены автоматически. (Если этого не происходит, выберите "Инструменты" > "Параметры" > "Управление источником", чтобы убедиться, что у вас есть нормальные настройки)

Теперь, если вы получаете ошибки при компиляции, вероятными подозреваемыми будут:

  • Код на сервере не создается. например кто-то забыл проверить все зависимости и т.д.
  • Код на сервере в порядке, но вы сопоставили его в другом месте на вашем ПК, чем у его первоначального автора (например, вы использовали D: \, и он использовал C:), и он не сделал его перемещаемым, Если это так, самое быстрое исправление заключается в том, чтобы выяснить, как его отображение работает и дублировать его именно на вашем ПК (подсказка: вы можете просматривать сопоставления других людей в своем редакторе рабочей области и копировать и вставлять их в свое собственное сопоставление). реальное решение, конечно, должно отслеживать каждую сломанную (абсолютную) ссылку на файл и сделать ее относительно того, чтобы сделать решение перемещаемым.
  • Код на сервере в порядке, но сопоставление рабочей области не соответствует настройке вашего веб-сервера, а затем, когда Visual Studio замечает, что эти два не совпадают, вы нажали "да", (не зная, что это означает "да, пожалуйста, прикрепите все для меня" ), а не "нет" ( "Я, должно быть, ошибся в сопоставлении с контролем источника, я думаю, что вернусь и дважды проверю это первым" ), В этом случае двойная проверка соответствия исходного кода приведет к потере кода в том месте, где веб-сервер считает, что он его найдет, и (после удаления партии, исправления сопоставления и выполнения специальной версии, чтобы заставить TFS получить чистая копия в нужном месте), вероятно, многие ваши проблемы исчезнут.
  • Код на сервере в порядке, но ужасная система ссылок Visual Studio нарушила некоторые ссылки. По сути, если он не может найти ссылку на сборку точно там, где вы скажете, чтобы она выглядела, вместо того, чтобы говорить "error: it not there", она вместо этого отправляется в путешествие по обнаружению через ваш компьютер и выбирает что-то еще с похожим именем и говорит: "Это должно делать". Что в небольшом проценте случаев (99%) f ** ks вещей полностью, а в оставшихся 1% просто полностью их ломает. Место для поиска в вашем списке ошибок обычно находится внизу - кстати, последняя ошибка часто является неудачной ссылкой, а предыдущие 1000 ошибок являются лишь побочными эффектами. Кроме того, проверьте в каждом проекте ссылки на желтые значки восклицательных значков - это недостающие ссылки. Наконец, если у вас есть ссылка на проект MyAssembly.dll или "MyAssembly", который вызывает необъяснимые ошибки сборки, выполните поиск на жестком диске для "MyAssembly.dll". Когда вы обнаружите 3,245 копий этой библиотеки в своих проектах сборки, удалите их все, кроме "правильного", и посмотрите, улучшается ли ваш успех сборки. Кроме того, вам просто нужно будет прочитать ошибки и решить их один за другим.

Я боюсь, что из этого далекого ответа нелегко, но, надеюсь, это, по крайней мере, подтвердит, что у вас есть правильные идеи, и, может быть, дайте вам некоторые подсказки, которые помогут вам диагностировать свое несчастье. Мои деньги были бы на картине рабочей области, которая была бы крошечным крошечным битом, отличным от магического параметра, который нужно для всего, чтобы просто щелкнуть на месте, оставив вас ошеломленным и удивляясь, почему вы просто потратили 3 дня на решение такой кошмарной проблемы только чтобы узнать, что вы были не более трех символов и слэш от центра лабиринта.

Из подсказок на шаге 9 это может быть что-то вроде

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

а не

$/TLog -> C:\TLog