HowTo: изменить статус проекта с «Invalid» на «Valid»?

Что касается системы управления версиями Team Foundation Server (TFS) ... как изменить статус проекта с Invalid на Valid?

Фон

Мы находимся в процессе реорганизации нескольких решений и проектов в TFS. В этом случае:

  1. Сначала была выполнена операция Branch, чтобы переместить существующие проекты "Решение +" в новое место в репозитории TFS.
  2. The project hierarchy was a mess, so I used the TFS Move operation to move the projects to an appropriate location.
    • This step was performed on a number of projects. For 99% of them, the binding is ok.
  3. Затем изменения были зафиксированы в TFS.

Разные подходы

Один

В Visual Studio ...

  • Откройте решение проблемы
  • Выберите решение в обозревателе решений
  • Выберите Файл-> Управление исходным кодом-> Изменить систему управления версиями.
  • Отмените привязку проектов, которые связаны, но работают некорректно.
  • Свяжите все проекты, которые сейчас не связаны.

Два

  1. Удалите весь исходный код с диска.
  2. Запустите Visual Studio.
  3. Откройте окно Source Control Explorer.
  4. Workspace dropdown => Workspaces => select MyWorkspace => Edit... => Advanced
    • everything looks good
  5. Убедитесь, что в TFS нет ожидающих изменений, связанных с проектами решения.
  6. Source Control => Получить последнюю версию
  7. Открыл решение (например, MySolution.sln) в Notepad ++
  8. Deleted the entire section:
    • GlobalSection(TeamFoundationVersionControl) = preSolution
  9. Сохранил файл решения.
  10. Открыл файл проекта (например, MyProject.vcxproj) в Notepad ++
  11. Deleted the following XML elements:
    • SccProjectName
    • SccAuxPath
    • SccLocalPath
    • SccProvider
  12. Сохранил файл проекта.
  13. Visual Studio => Файл => Открыть => Решение
  14. Щелкните MySolution в Обозревателе решений.
  15. File => Source Control => Advanced => Change Source Control
    • In the status column, MySolution and MyProject are listed as Not Controlled
  16. Нажал MySolution и Привязать
  17. Нажмите ОК. Все идет нормально.
  18. File => Source Control => Advanced => Change Source Control
    • In the status column, MyProject is listed as Not Controlled
  19. Clicked MyProject and Bind
    • In the status column, MyProject is now marked as Invalid
  20. If I now click ok, the following error is displayed:
    • "Some projects have been bound to server locations that may be incorrect. A location may be incorrect either because it does not contain the majority of the projects' files or because those files are not in the correct location relative to the specified server folder. You should probably fix all the bindings in the solution. However, you may continue and bind these projects to the specified locations even when some may be incorrect."
  21. Click: Fix server bindings
    • Dialogue window disappears.
  22. Click: Ok
    • The previous error re-appears.
  23. Click: Continue with these bindings
    • The Dialogue window disappears, but I am still no further to solving this problem :(

Среда

  • Visual Studio Premium 2013 (версия 12.0.21005.1 REL)
  • Windows 8.1 Enterprise (64-разрядная)
  • Это решение содержит несколько других проектов (C ++ и C #), и с привязкой все в порядке.
  • В настоящее время для этого решения нет определения сборки.

Дополнительное чтение


person Pressacco    schedule 09.06.2015    source источник


Ответы (3)


Обычно я избегаю проверять код, который не [1] компилируется и [2] готов к производству (или, по крайней мере, готов к контролю качества).

В этом случае я решил проигнорировать собственное правило и теперь заплатил цену :(

Решение

Хотя расположение проектов было правильно изменено с помощью команды TFS Move, в нескольких проектах C ++ были ссылки, указывающие на старые пути. В результате эти проекты имели статус Привязка Invalid:

  • The project Filter included a file that was no longer in the old location.
    • MyProject => ThirdPartyLib filter => HeaderOfSomeLibraryFile.h
  • MyProject.vcxproj had an invalid project reference.
    • MyProject => Properties => Common Properties => References

После устранения этих проблем статус привязки MyProject.vcxproj автоматически изменился на Valid.

person Pressacco    schedule 10.06.2015

Сегодня я столкнулся с той же проблемой. Попробовав разные подходы, я обнаружил, что два файла в текущем решении были проигнорированы (они не были добавлены в репозиторий TFS). В моем случае у меня было 2 пользовательских файла ".config".

После добавления этих файлов вручную статус изменился на «Действительный», и теперь привязка работает.

person bkjensen    schedule 15.06.2017

Я нашел два решения:

  1. Отмените привязку, выгрузите проект, затем перезагрузите. Источник Binding Invalid.

  2. Удалите файлы, которых нет в системе контроля версий. Источник: Решение проблемы« Некоторые проекты были привязаны к расположению сервера, что может быть неправильным ». в Visual Studio 2010 при использовании Team Foundation System 2010: когда некоторый процент элементов решения не может быть найден локально и не находится в системе управления версиями, Visual Studio отмечает привязку решения к системе управления версиями как «недействительную». .

В моем случае это потому, что сборка Angular генерирует много файлов, которые я использую .tfignore, чтобы они не регистрировались. Visual Studio 2019 обнаружила, что «он не содержит большинства файлов проектов» и пометила этот проект как «Недействительный». После удаления этих файлов он автоматически становится «Действительным». Так что состояние «Недействительное» - это просто вводящее в заблуждение / бесполезное предупреждение. Вы можете просто проигнорировать это предупреждение, поскольку на самом деле нет ничего "недействительного".

person ChrisTorng    schedule 25.12.2019