У меня есть проект vs.net, и после некоторого рефакторинга я изменил имя проекта. Как я могу легко переименовать имя базовой папки Windows, чтобы оно соответствовало этому новому имени проекта в проекте и решении, контролируемом TFS?
Обратите внимание, что раньше я мог делать это, возясь с вещами в фоновом режиме с помощью SourceSafe ...
Переименование папки проекта в VS.net под TFS
Ответы (6)
Просто щелкните правой кнопкой мыши папку в TFS и выберите «Переименовать». Как только вы подтвердите переименование, TFS внесет изменения на диск за вас. Как указал Кевин, вам нужно убедиться, что все зарегистрировано, потому что TFS удалит старую папку и все, что в ней, и вытащит переименованную папку с текущей версией файлов в ней.
И последнее замечание: вы не можете переименовать папку, которую вы не сопоставили или которую не выполнили «Получить». Я не знаю почему, но в этих случаях TFS отключит параметр «Переименовать».
По крайней мере, это то, что со мной случилось, если я правильно помню.
- Зарегистрируйте все ожидающие изменения в папке и убедитесь, что все остальные участники группы поступают так же.
- Убедитесь, что у вас есть копия папки в вашем рабочем каталоге (в противном случае у вас не будет возможности переименовать папку в Source Control Explorer на следующем шаге). Загрузите последнюю версию в папку, чтобы получить копию, если у вас ее еще нет.
- Закройте решение.
- Переименуйте папку в Source Control Explorer. Это переместит все файлы, которые отслеживаются в системе управления версиями, из исходной папки в вашей файловой системе в новую. Обратите внимание, что файлы, не отслеживаемые системой управления версиями, останутся в исходной папке - вы, вероятно, захотите удалить эту папку, как только убедитесь, что там нет нужных вам файлов.
- Откройте решение и выберите «
No
», когда будет предложено получить проекты, которые были недавно добавлены в решение из системы управления версиями. Вы получите предупреждение о том, что не удалось загрузить один из проектов в решении. - Выберите проект в Обозревателе решений.
# P1 #
- Откройте панель Свойства.
- Измените свойство "Путь к файлу" напрямую или с помощью кнопки "
...
".# P2 #
- Щелкните правой кнопкой мыши проект в Solution Explore r и выберите Перезагрузить проект в контекстном меню. Если вы получаете сообщение об ошибке, в котором говорится, что проект не может быть загружен из исходной папки, попробуйте закрыть решение, удалив файл suo в той же папке, что и файл решения, а затем повторно откройте решение.
- Зарегистрируйте изменения как единый набор изменений.
- Попросите других членов группы «Получить последнюю версию» решения (щелкните решение правой кнопкой мыши в Обозревателе решений и выберите «Получить последнюю версию» в контекстном меню.
Примечание. Другие предлагаемые решения, включающие удаление и повторное добавление проекта в решение, нарушат ссылки на проект.
Если вы выполните эти шаги, вы также можете подумать о переименовании следующего в соответствии с требованиями.
- Файл проекта
- По умолчанию / корневое пространство имен
- сборка
Также рассмотрите возможность изменения значений следующих атрибутов сборки.
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
File Path
на шаге 8 нельзя редактировать. После шага 5 снова закройте раствор. Найдите файл .sln, удалите атрибут «только для чтения» и вручную отредактируйте путь к проекту (ближе к началу файла). Сохраните файл (оставьте атрибут только для чтения отключенным), повторно откройте решение и продолжите с шага 10.
- person Cᴏʀʏ; 04.05.2015
suo
было той частью, которую мне не хватало! Мне казалось, что я схожу с ума, этот ответ избавил меня от головной боли.
- person Jakub Januszkiewicz; 25.01.2016
Вы можете просто переименовать проект (файл .Xproj и папку проекта) в TFS, удалить структуру локальных папок и все ее содержимое, а затем получить последнюю версию проекта. Все это зависит от того, является ли ваш исходный репозиторий полностью актуальным и компилируемым.
Вот шаги, которые у меня сработали в Visual Studio 2008 с TFS:
- Близкий раствор.
- Переименуйте папки проекта в Source Control Explorer (щелкните правой кнопкой мыши -> переименовать). Это дублирует код во вновь названные папки.
- Откройте решение и в обозревателе решений удалите старые папки / проекты и добавьте новые, должным образом названные дубликаты (в старых проектах щелкните правой кнопкой мыши -> удалить, затем в решении щелкните правой кнопкой мыши-> Добавить-> Существующий проект ...)
ИЛИ: После шага 2 вы можете открыть файл .sln решения в текстовом редакторе и вручную обновить имена папок проекта. Если вы это сделаете, вам может потребоваться вручную извлечь файл .sln, чтобы убедиться, что ваши изменения будут зарегистрированы (‹- важно!).
Моя конкретная конфигурация - VS2010, подключающийся к TFS2008. Я пробовал другие решения здесь, но возникли проблемы. Я обнаружил, что у меня сработало следующее: -
- Удалить проект в папке, которую нужно переименовать из решения
- Сохранить решение
- Переименовать папку, содержащую удаленный проект, в системе управления версиями TFS (переименовывается локально на жестком диске)
- Добавить проект обратно в решение из нового места
- Сохранить решение
- Принять к исходному контролю
Теперь у вас будет переименование папки и повторное отображение решения, все зафиксированные в одном наборе изменений.
Для Visual Studio 2019 и ASP.NET Core 2.2 мне пришлось немного изменить ответ Скотта Манро. Вот что у меня сработало:
Перед тем, как начать: проверьте все изменения и сделайте резервную копию своего решения.
- Переименуйте проект с помощью Обозревателя решений (т. Е. Щелкните проект правой кнопкой мыши и выберите "Переименовать").
- Переименуйте папку проекта в Source Control Explorer.
- Откройте файл .sln своего решения в текстовом редакторе и исправьте путь к файлу. (Замените любые ссылки на «OldProjectName» на «NewProjectName»).
- Перезагрузите свое решение в Visual Studio.
- Найдите и замените все старые пространства имен новым именем проекта.
- Сделанный. Зарегистрируйте изменения.
Сначала мне пришлось выполнить шаг 1, чтобы проект загрузился после исправления пути к файлу на шаге 3.