Как: изменить статус проекта с `Invalid` на`Valid`?
Что касается контроля исходного кода Team Foundation Server (TFS)... как изменить статус проекта с Invalid
в Valid
?
Фон
Мы находимся в процессе реорганизации нескольких решений и проектов в TFS. В этом случае:
- Сначала была выполнена операция ветвления, чтобы переместить существующие решения + проекты в новое место в хранилище TFS.
- Иерархия проектов была беспорядочной, поэтому я использовал операцию перемещения TFS, чтобы переместить проекты в подходящее место.
- Этот шаг был выполнен по ряду проектов. Для 99% из них привязка в порядке.
- Затем изменения были зафиксированы в TFS.
Разные подходы
Один
В Visual Studio...
- Откройте решение с проблемой
- Выберите решение в обозревателе решений
- Выбрать файл-> Контроль источника-> Изменить контроль источника
- Удалите все проекты, которые связаны, но не работают правильно.
- Свяжите все проекты, которые сейчас не связаны.
Два
- Удалить весь исходный код с диска.
- ЗапуститеVisual Studio.
- Откройте окноSource Control Explorer
- Раскрывающееся рабочеепространство => Рабочие пространства => выберите
MyWorkspace
=> Редактировать... => Дополнительно- все выглядит хорошо
- Убедитесь, что в TFS нет ожидающих изменений, связанных с проектами решения.
- Контроль источника => Получить последнюю
- Раскрыл решение (например
MySolution.sln
) в Блокноте ++ - Удалил весь раздел:
GlobalSection(TeamFoundationVersionControl) = preSolution
- Сохранен файл решения.
- Открыл файл проекта (например, MyProject.vcxproj) в Notepad++
- Удалил следующие элементы XML:
SccProjectName
SccAuxPath
SccLocalPath
SccProvider
- Сохраненный файл проекта.
- Visual Studio => Файл => Открыть => Решение
- Нажмите на
MySolution
в обозревателе решений - Файл => Контроль источника => Дополнительно => Изменить контроль источника
- В столбце состояния
MySolution
а такжеMyProject
перечислены какNot Controlled
- В столбце состояния
- Нажал
MySolution
и связать - Нажал ок. Все идет нормально.
- Файл => Контроль источника => Дополнительно => Изменить контроль источника
- В столбце состояния
MyProject
указан какNot Controlled
- В столбце состояния
- Нажал
MyProject
и связать- В столбце состояния
MyProject
теперь помечен какInvalid
- В столбце состояния
- Если я сейчас нажму кнопку ОК, появится следующая ошибка:
- "Некоторые проекты были привязаны к расположениям серверов, которые могут быть неправильными. Расположение может быть неправильным либо потому, что оно не содержит большинство файлов проектов, либо потому, что эти файлы не находятся в правильном расположении относительно указанной папки сервера. Вы Вероятно, следует исправить все привязки в решении. Однако вы можете продолжить и связать эти проекты с указанными местоположениями, даже если некоторые могут быть неправильными. "
- Нажмите: исправить привязки сервера
- Диалоговое окно исчезает.
- Нажмите: ОК
- Предыдущая ошибка появляется снова.
- Нажмите: продолжить с этими привязками
- Окно диалога исчезает, но я до сих пор не могу решить эту проблему:(
Среда
- Visual Studio Premium 2013 (версия 12.0.21005.1 REL)
- Windows 8.1 Корпоративная (64-разрядная)
- Это решение содержит несколько других проектов (C++ & C#), и связывание в порядке.
- Это решение не имеет определения сборки на данный момент.
Дополнительное Чтение
2 ответа
Я столкнулся с той же проблемой сегодня. Попробовав разные подходы, я обнаружил, что два файла в текущем решении были проигнорированы (они не были добавлены в репозиторий TFS). В моем случае у меня было 2 пользовательских файла ".config".
После добавления этих файлов вручную статус изменился на "Действительный", и привязка теперь работает.
Я нашел два решения:
Отключите, выгрузите проект и перезагрузите. Приходит из-за недействительной привязки.
Удалите файлы, которых нет в системе контроля версий. Происходит от решения проблемы "Некоторые проекты были привязаны к расположению сервера, что может быть неправильным". в Visual Studio 2010 при использовании Team Foundation System 2010: когда некоторый процент элементов решения не может быть найден локально и не находится в системе управления версиями, Visual Studio отмечает привязку решения к системе управления версиями как "недействительную".
В моем случае это связано с тем, что сборка Angular генерирует много файлов, которые я использую.tfignore, чтобы предотвратить их регистрацию. Visual Studio 2019 обнаружила, что "он не содержит большинства файлов проектов" и пометила этот проект как "Недействительный". После удаления этих файлов он автоматически становится "Действительным". Таким образом, состояние "Недействительное" - это просто вводящее в заблуждение / бесполезное предупреждение. Вы можете просто проигнорировать это предупреждение, поскольку на самом деле нет ничего "недействительного".
Обычно я избегаю проверки кода, который [1] не компилируется и [2] не готов к производству (или, по крайней мере, не готов к QA).
В этом случае я решил игнорировать свое собственное правило, и теперь я заплатил цену:(
Решение
Хотя расположение проектов было правильно изменено с использованием TFS Move
команда, несколько проектов C++ имели ссылки, указывающие на старые пути. В результате эти проекты имели обязательный статус Invalid
:
- Фильтр проекта включал файл, которого больше не было в старом месте.
MyProject
=>ThirdPartyLib
фильтр =>HeaderOfSomeLibraryFile.h
MyProject.vcxproj
была неверная ссылка на проект.MyProject
=>Properties
=>Common Properties
=>References
После того, как эти проблемы были исправлены, MyProject.vcxproj
статус привязки автоматически переключается на Valid
,