Как предотвратить «Похоже, что существует несоответствие между контролем исходного кода решения ...» без изменения файла .sln - PullRequest
33 голосов
/ 19 апреля 2011

Примечание: я видел "Похоже, что существует несоответствие между контролем исходного кода решения ...." , но это не относится, так как я хочу исправить это без изменение файла .sln.

Почему-то каждый раз, когда я открываю решение, содержащее в файле sln:

SccTeamFoundationServer = http://servername:8080/tfs/defaultcollection
SccAuxPath* = http://servername:8080/tfs/defaultcollection

Моя копия VSS настаивает на переключении его на

SccTeamFoundationServer = http://servername:8080/tfs/
SccAuxPath* = http://servername:8080/tfs/

Сохранение этих изменений действительно исправляет все для меня, но все остальные, использующие тот же сервер контроля версий, подойдут для 1-й версии, но не для второй.Я хочу, чтобы сервер / пути управления версиями моего компьютера были совместимы с таковыми моих коллег.

Все используют Visual Studio 2010 с Visual Studio 2010 Team Explorer.

Ответы [ 5 ]

30 голосов
/ 23 мая 2012

У меня была эта проблема с Решением, содержащим файлы проекта * .vcxproj, которые ранее были перенесены из VS2008 в VS2010. Путь к TFS был определен как в файле .sln, так и в файле .vcxproj.

Самым простым исправлением было обновление файлов проекта * .vcxproj для использования ключевого слова SAK.

т.е. обновление из формата:

<SccProjectName>$/MyProject/Directory/abc</SccProjectName>
<SccAuxPath>http://servername:8080/tfs/defaultcollection</SccAuxPath>
<SccLocalPath>.</SccLocalPath>
<SccProvider>{11111111-1111-1111-1111-111111111111}</SccProvider>

до

<SccProjectName>SAK</SccProjectName>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<SccProvider>SAK</SccProvider>
3 голосов
/ 24 мая 2011

Вы пытались подключиться к http://servername:8080/tfs/defaultcollection вместо http://servername:8080/tfs/ в настройках Team Explorer - Team Project Connection? Попробуйте сделать это, позвольте кому-нибудь, у кого есть регистрация http://servername:8080/tfs/ версии, переназначить ваш локальный экземпляр и получить последнюю версию.

2 голосов
/ 17 апреля 2014

Используя Visual Studio, вы можете решить эту проблему, отсоединив и связав решение и / или проекты. Попробуйте это:

  1. Откройте решение проблемы в VS (сделал это в VS2013 только сейчас)
  2. Зафиксируйте все, что вам нужно (давайте сделаем это просто - нечего объединять / регистрировать)
  3. Если есть какие-либо ожидающие изменения, отмените все ожидающие изменения во всех проектах в этом решении и любые изменения в самом решении
  4. Перейдите в Файл -> Контроль источника -> Дополнительно -> Изменить контроль источника
  5. Выберите проблемные проекты и нажмите «Отменить привязку»
  6. Нажмите OK и закройте окно ( ЭТО ВАЖНО - если вы не нажмете ОК, VS не обновит решение должным образом )
  7. Перейдите в Файл -> Контроль источника -> Дополнительно -> Изменить контроль источника
  8. Выберите все проекты, которые вы отменили в # 5 и нажмите «Привязать»
  9. Нажмите ОК и закройте окно
  10. Регистрация изменений в вашем решении и проекте
  11. Закройте решение и снова откройте его, и теперь все должно быть в порядке.
2 голосов
/ 02 декабря 2011

У меня была именно эта проблема. Я наконец решил проблему, отключившись от TFS и снова подключившись: В Team Explorer (View-Team Explorer) щелкните правой кнопкой мыши по имени вашего сервера TFS и выберите «Отключить». Затем нажмите Team-Connect на Team Foundation Server ...

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

Компьютер, на котором это происходило, работал нормально более года, но я предполагаю, что Visual Studio каким-то образом кэшировал имя как http://servername:8080/tfs/ вместо http://servername:8080/tfs/defaultcollection и отключал и снова подключался к сбросу TFS VS на правильный путь http://servername:8080/tfs/defaultcollection. На моем сервере (и я бы догадался на всех) http://servername:8080/tfs/ и http://servername:8080/tfs/defaultcollection указывают на то же самое. Решение Реймунда не сработало для меня - у меня была та же проблема, что и с Брайаном.

0 голосов
/ 27 февраля 2012

Также попробуйте открыть файл .sln из Source Control Explorer, я думаю, что это могло решить эту проблему для меня.

...