Как переименовать папку проекта из Visual Studio?
Мое текущее решение для переименования папки проекта:
- Удалите проект из решения.
- Переименуйте папку вне Visual Studio.
- Повторно добавьте проект в решение.
Есть ли лучший способ?
Ответы
Ответ 1
Пользователи TFS: если вы используете систему контроля версий, которая требует, чтобы вы предупреждали ее перед переименованием файлов/папок, вместо этого посмотрите на этот ответ, который охватывает дополнительные необходимые шаги.
Чтобы переименовать папку проекта, файл (.*proj
) и отображаемое имя в Visual Studio:
- Закройте решение.
- Переименуйте папку (и) вне Visual Studio. (Переименовать в TFS при использовании контроля версий)
- Откройте решение, игнорируя предупреждения (ответьте "нет", если будет предложено загрузить проект из системы контроля версий).
- Пройдите через все недоступные проекты и...
- Откройте окно свойств проекта (выделите проект и нажмите Alt + Enter или F4 или щелкните правой кнопкой мыши> свойства).
- Установите для свойства " Путь к файлу " новое местоположение.
- Если свойство недоступно для редактирования (как в VS2012), откройте файл
.sln
непосредственно в другом редакторе, например Notepad++, и обновите пути к нему. (Вам может понадобиться сначала проверить решение в TFS и т.д.)
- Перезагрузите проект - щелкните правой кнопкой мыши> перезагрузить проект.
- Измените отображаемое имя проекта, выделив его и нажав F2 или щелкнув правой кнопкой мыши> переименовать.
Примечание. Другие предлагаемые решения, включающие удаление и повторное добавление проекта в решение, будут нарушать ссылки на проекты.
Если вы выполните эти шаги, вы можете также переименовать следующее, чтобы соответствовать:
- сборочный
- Default/Root Namespace
- Пространство имен существующих файлов (используйте инструменты рефакторинга в Visual Studio или ReSharper - инструмент несовместимых пространств имен)
Также рассмотрите возможность изменения значений следующих атрибутов сборки:
-
AssemblyProductAttribute
-
AssemblyDescriptionAttribute
-
AssemblyTitleAttribute
Ответ 2
Есть и другой способ сделать это, используя файлы *.sol, * csproj.
- откройте файл решения
- найдите *.csproj, который вы хотели бы изменить
-
он будет таким (относительно файла *.sol):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
-
и просто измените первую часть на новую директорию, например:
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
-
конечно, не забудьте переместить весь проект в этот каталог
Удачи.
Ответ 3
Это прямо в VS 2015 (возможно, работает в более старых версиях)
- В обозревателе решений щелкните правой кнопкой мыши по
Main solution > Rename
- В обозревателе решений щелкните правой кнопкой мыши по
project (under solution) > Rename
- В обозревателе решений дважды щелкните или щелкните правой кнопкой мыши по
Properties >
перейти к вкладке "Приложение", переименуйте Assembly name
и Default namespace
в соответствие.
- Если вы хотите также переименовать пространство имен, откройте один из ваших файлов классов. Щелкните правой кнопкой мыши
namespace > Rename...
, чтобы искать и заменять все ссылки на ваше пространство имен во всем проекте.
- Закройте проект > переименуйте
project folder
.
- Измените
.sln
файл в блокноте, измените путь к cjproj. т.е. fu\bar.csproj --> bar\bar.csproj
Ответ 4
Человек, я боролся с этим. К сожалению, в Visual Studio нет решения одним щелчком мыши, но если вы работаете с Visual Studio 2012 и ваш проект находится под управлением исходного кода с помощью Team Foundation Server, вот как я получил его, сохранив историю исходного кода:
(Обязательно прочитайте комментарий @mjv ниже, так как он отмечает, что вы можете пропустить шаги 5-10)
- Убедитесь, что вы отметили все изменения, поэтому у вас нет ожидающих изменений.
- Удалите проект из решения, щелкнув правой кнопкой мыши и выбрав Удалить.
- Теперь в проводнике Windows переименуйте папку проекта.
- Вернитесь в Visual Studio и в Solution Explorer щелкните правой кнопкой мыши решение и выберите Add → Existing project. Выберите файл проекта для проекта, который вы удалили на шаге 2, который должен находиться в переименованной папке.
- Теперь проект вернулся в решение, но проект, похоже, не добавлен в систему контроля версий. Чтобы это исправить, откройте Source Control Explorer.
- Найдите папку проекта в Source Control Explorer, которая соответствует папке проекта на вашем диске, которую вы переименовали в шаге 3.
- Переименуйте папку в Source Control Explorer, чтобы она имела то же имя, что и папка проекта на диске.
- Теперь взгляните на ожидающие изменения. У вас должны быть изменения в файле решения и операция переименования в папке проекта.
- Сделайте перестройку и убедитесь, что все компилируется правильно. Если у вас были межпроектные ссылки на проект, который вы переименовали, вам нужно снова добавить их в отдельные проекты, которые ссылались на него.
- Вы должны быть все готово сейчас. Иди и проверить все в.
Вышеуказанное руководство работает для меня. Если он не работает для вас, попробуйте полностью удалить локальное решение и удалите сопоставление папок в рабочей области. Перезапустите Visual Studio на всякий случай. Убедитесь, что вы действительно удалили все решение со своего компьютера. Теперь прочитайте сопоставление решения в вашем рабочем пространстве и получите последнюю версию. Теперь попробуйте вышеуказанные шаги. То же самое применимо, если что-то пойдет не так при выполнении вышеуказанных шагов. Просто удалите свое решение локально и получите последний источник, и у вас будет чистый лист для работы.
Если у вас все еще есть проблемы, убедитесь, что вы ничего не изменили вручную в файле решения, или попробуйте другие "хитрости", прежде чем пытаться выполнить описанные выше шаги. Если вы что-то изменили и отметили это, вы можете рассмотреть возможность отката до того момента, когда вы начали возиться с переименованием проекта.
Конечно, вы также захотите переименовать сам проект в Solution Explorer. Вы можете сделать это до описанных выше шагов, но в этом случае убедитесь, что вы отметили это изменение, прежде чем применять описанные выше шаги. Вы также можете сделать это позже, но сначала убедитесь, что вы выполнили все шаги, описанные выше, и проверьте изменения, прежде чем пытаться переименовать имя проекта в обозревателе решений. Я не рекомендую пытаться смешивать вышеперечисленные шаги с переименованием имени проекта в обозревателе решений. Хотя это может сработать, но я бы порекомендовал сделать это в 2 отдельных наборах изменений.
Ответ 5
В настоящее время нет. Ну, на самом деле вы можете щелкнуть сломанный проект node, а в панели свойств найдите свойство "Путь", затем щелкните маленький значок обзора и выберите новый путь.
Voila:)
Ответ 6
Более простым решением является следующее:
- Щелкните правой кнопкой мыши проект и переименуйте его.
- (необязательно) Откройте параметры свойств проектов и измените имя сборки (и, при желании, пространство имен по умолчанию), чтобы использовать новое имя проекта.
- (необязательно) Выберите имя пространства имен в исходном файле, щелкните правой кнопкой мыши и выберите Refactor\Rename, чтобы глобально переименовать пространство имен в новое название проекта.
- (необязательно) Откройте файл AssemblyInfo.cs и измените имя сборки для соответствия.
- Сохраните и закройте решение.
- Использование проводника Windows переименует папку проекта в новое имя.
- Откройте файл SLN в текстовом редакторе и найдите одну ссылку на путь проекта и измените его, чтобы использовать новое имя папки.
Есть 4 необходимых шага, но рекомендуется 7. В конце концов, хотя проект полностью переименован. Технически имя папки для проекта не должно совпадать с самим проектом, поэтому даже этот шаг является необязательным, но может быть запутанным, если они не совпадают. То же самое для имен сборки и имен.
Ответ 7
В andersjanmyr ответьте на его проще сначала переименовать проект.
- Переименуйте проект.
- Закройте решение (сохраните его).
- Переименовать папки за пределами Visual Studio.
- Откройте решение, игнорируя предупреждения.
- Пройдите через все недоступные проекты и установите свойство "Путь к файлу" в новое местоположение вашего файла проекта, то есть someproject.csproj.
- Перезагрузите проект.
Кроме того, после выполнения этих шагов вам может потребоваться переименовать другие ссылки на ваше прежнее название проекта.
В свойствах проекта обновите имя сборки и пространство имен по умолчанию.
Это обновит следующее в файле проекта...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... и избавится от ошибки "Пространство имен не соответствует местоположению файла, должно быть:" SomeProjectName ""
Переименуйте корневое пространство имен (если у вас есть resharper, щелкните правой кнопкой мыши пространство имен и перейдите в Refactor → Rename).
Измените все вхождения вашего старого имени проекта в AssemblyInfo.cs
Ответ 8
Для VS2017 вы можете использовать мое расширение Visual Studio
скачать
Это переименует проект в:
- папка расположения проекта
- файл решения
- ссылка в других проектах
- Название сборки, информация
- пространство имен по умолчанию
Ответ 9
Я просто должен был сделать это сам (используя VS2010). Как некоторые люди ответили, самый простой шаг:
- Закройте проект VS.
- Откройте файл .sln и переименуйте префикс каталога проекта для каждого из вхождений .csproj.
- Сохраните файл .sln
- Переименуйте каталог каталога проектов на жестком диске в соответствии с вашими изменениями в .sln файле.
- Откройте .sln(в VS) и перестройте
Ответ 10
См. пункт 3 в связанной статье.
- Закройте решение и IDE.
- В проводнике: измените имя каталога на новое имя.
- В проводнике: откройте файл .sln с помощью текстового редактора.
- Измените имя каталога на новое имя и сохраните.
- Перезагрузите IDE и откройте решение из меню File, Recent Files, если оно не запускается автоматически.
- Щелкните папку Project в обозревателе решений и проверьте свойство path в свойствах внизу. Теперь он будет ссылаться на новую папку проекта.
Это сработало для меня.
Ответ 11
Проверенное решение для расширения Visual Studio для инструментов данных для бизнес-аналитики (SSDT-BI 2013):
- Переместите папку Project в новое место (еще не переименовывайте)
- В обозревателе решений переименуйте проект/решение.
- Закрыть (и сохранить) вновь переименованный проект.
- Переименуйте папку проекта и файл .sln.
- Используйте текстовый редактор и откройте вновь измененный файл решения проекта (.sln) (я использовал Notepad ++)
- В строке №6 вы увидите: "Project {fdjfksdjk4387!...} =" OLDPROJECT "," OLDFOLDER\OLDPROJECT.rptproj ". Переименуйте все с новыми именами, используемыми в шаге 4. (т.е.... =" NEWPROJECT "," NEWFOLDER\NEWPROJECT.rptproj"...)
- Что это!
Протестировано 100% и безупречно работает на моем случае.
ПРИМЕЧАНИЕ. Невозможно подтвердить, работает ли он под разными шаблонами проектов, а также версиями Visual Studio. Как всегда, делайте резервное копирование заранее.
Ответ 12
Для тех, кто использует Visual Studio + git и хочет сохранить историю файлов (работает с переименованием как проектов, так и/или решений):
1) Закрыть Visual Studio
2) В файле .gitignore дублируйте все игнорируемые пути проекта, которые вы хотите переименовать, с переименованными версиями этих путей.
3) Используйте команду git move:
git mv <old_folder_name> <new_folder_name>
Смотрите документацию для дополнительных опций: https://git-scm.com/docs/git-mv
4) В вашем файле .sln: найдите строку, определяющую ваш проект, и измените имя папки в пути. Строка должна выглядеть примерно так:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
5) Откройте Visual Studio, щелкните правой кнопкой мыши по проекту → Переименовать
6) После этого переименуйте пространства имен. Я читал, что у Resharper есть несколько вариантов для этого. Но простой поиск/замена сделал работу за меня.
7) Удалить старые пути .gitignore
Ответ 13
@andersjanmyr Решение: вы можете нажать Alt + Enter, чтобы открыть страницу свойств для недоступного проекта и установить там свойство "Путь к файлу"; поскольку он недоступен в контекстном меню правой кнопки мыши в недоступном проекте (в VS2008).
Ответ 14
Я написал небольшой инструмент, который автоматизирует все эти шаги. Также поддерживает подрывную деятельность.
Информацию о текущих выпусках можно найти здесь Visual Studio Project Renamer Infos
Теперь выпуски Latests теперь можно загрузить с Страница загрузки Visual Studio Project Renamer
Обратная связь очень ценится.
Ответ 15
Хотя на этот вопрос уже был дан ответ, я хотел поделиться своим подходом к решению этой проблемы. У меня часто возникала проблема переименования проекта в VS и редактирования имени папки, имени проекта и файла .sln для этого. Я просто написал VBScript, который выполняет все это. Вы должны быть осторожны со строками, которые вы выбираете для замены.
EDIT: вам просто нужно поместить файл .vbs в тот же каталог, что и файл .sln для решения.
'Script parameters'
Solution = "Rename_Visual_Studio_Project" '.sln'
Project = "Rename_Visual_Studio_Project" '.csproj'
NewProject = "SUCCESS"
Const ForReading = 1
Const ForWriting = 2
Set objFso = CreateObject("Scripting.FileSystemObject")
scriptDirr = objFso.GetParentFolderName(wscript.ScriptFullName)
'Rename the all project references in the .sln file'
Set objFile = objFso.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForReading)
fileText = objFile.ReadAll
newFileText = Replace(fileText, Project, NewProject)
Set objFile = objFSO.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForWriting)
objFile.WriteLine(newFileText)
objFile.Close
'Rename the .csproj file'
objFso.MoveFile scriptDirr + "\" + Project + "\" + Project + ".csproj", scriptDirr + "\" + Project + "\" + NewProject + ".csproj"
'Rename the folder of the .csproj file'
objFso.MoveFolder scriptDirr + "\" + Project, scriptDirr + "\" + NewProject
Ответ 16
Что сработало для меня в 2017 году:
- Закрыть решение VS
- Переименован каталог проектов в решение.
- (нажмите изменения в управлении исходным кодом - git в моем случае)
- отредактируйте файл sln в текстовом редакторе (за пределами VS2017), изменив имя каталога.
- Вновь открыть решение в VS
В нем говорилось что-то вроде "повторного добавления проекта", я перестроил все, и все было хорошо.
Ответ 17
ПРИМЕЧАНИЕ. Это исправление для Visual Studio 2008, но должно работать здесь.
- Используя проводник Windows, переименуйте папки решений (родительскую папку и дочернюю папку) в новое имя решения.
- Удалите файл
.sln
, расположенный в родительской папке.
- В Visual Studio выберите Файл | Открыть проект.
- Вверните новую папку, которую вы только что переименовали, и откройте файл .csproj(расположенный в дочерней папке).
- Щелкните правой кнопкой мыши имя проекта и переименуйте его в нужное вам. (Должно быть то же имя, что и папка на шаге 1.)
- Выберите File | Close Solution. Диалоговое окно спросит, хотите ли вы сохранить изменения в файле
.sln
. Нажмите "Да".
- В диалоговом окне "Сохранить как файл" укажите на недавно переименованную папку PARENT и нажмите "Сохранить".
(ПРИМЕЧАНИЕ. Убедитесь, что файл
.sln
имеет то же имя, что и папка. Не требуется, но поддерживает согласованность.)
DONE.
Ответ 18
При использовании TFS шаг 2 - это фактически переименование папки в исходном элементе управления, а затем получение последней информации перед повторным открытием решения.
Ответ 19
Недавно мы загрузили бета-версию бесплатного расширения VS, которое делает это для вас.
Посмотрите на VS Gallery:
Загрузка галереи
Ответ 20
Ну, я сделал это по-своему.
-
- Закрыть Visual Studio 2012
- Переименуйте свой подкаталог в предпочтительное имя под .sln
- Удалить файл *.suo
- Откройте снова решение, исправьте все свойства Project (s), загруженные, чтобы встретить новое имя подкаталога
Ответ 21
-
Переименуйте проект в решение и папку проекта
-
Удалить проект из решения
-
Добавить существующий проект в решение (ваш переименованный проект)
Меня устраивает. TFS также будет отслеживать новый проект.
Ответ 22
Откройте .sln в текстовом файле и в следующей строке измените имя новой папки Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\.csproj", "{021CC6B0-8CFB -4194-А103-C19AF869D965}"
Ответ 23
Я должен был сделать это много раз. Очень полезно иметь возможность изменять существующий проект, но иметь возможность переименовывать текст в пространствах имен, файлах и папках. Использование рекурсивного поиска и замены, начиная с корневой папки, означает, что переименование не нарушает ссылки на проекты в файлах решений и ссылках на проекты.
Для этого я создал проект, чтобы сделать именно это. Приложение также пытается игнорировать папки управления версиями, такие как .git,.svn и файл настроек .vs. Больше информации в README.
https://github.com/garethrbrown/vs-project-rename
![Example]()
Ответ 24
После изменения имени папки откройте файл .sln в блокноте и измените путь к новому пути.
Ответ 25
Аналогичные проблемы возникают при создании нового проекта, и вы хотите, чтобы другое имя папки проекта, чем имя проекта.
Когда вы создаете новый проект, он сохраняется в
./path/to/pro/ject/YourProject/YourProject.**proj
Предположим, вы хотели иметь его непосредственно в папке ject
:
./path/to/pro/ject/YourProject.**proj
Мое обходное решение для этого - создать проект с последней частью пути в качестве его имени, чтобы он не создавал дополнительный каталог:
./path/to/pro/ject/ject.**proj
Когда вы теперь переименовываете проект из Visual Studio, вы достигаете цели, не покидая VS:
./path/to/pro/ject/YourProject.**proj
Недостатком этого подхода является то, что вам нужно также настроить пространство имен по умолчанию и имя двоичного файла вывода, а также обновить пространства имен во всех файлах, включенных в шаблон проекта.
Ответ 26
Я использую VS 2013 и TFS 2013.
Я сделал это вот так:
- Откройте Visual Studio без открытия самого решения и используйте Source Control Explorer для поиска и переименования папок для проектов.
- Дважды щелкните файл решения в Source Control Explorer, чтобы открыть решение.
- Возникает вопрос: "Недавно были добавлены проекты для этого решения. Хотите ли вы получить их из источника управления?", и вы выбираете "Да"
- Теперь есть папка и структура проекта, но теперь файлы, поэтому теперь вы получаете последнюю версию из исходного элемента управления
- Попробуйте создать и зафиксировать изменения.
Ответ 27
Там был более простой подход, который был протестирован в VS 2013 Update 1 и применим для проектов, связанных с TFS:
- Откройте VS, но пусть решение закрыто
- Проводник с открытым исходным кодом и переименуйте нужную папку (решение будет закрыто для вас, если вы его еще не закрыли)
- Щелкните правой кнопкой мыши по решению (из Source Explorer) и выберите check-in
- Откройте решение, вы сообщите, что добавлены новые проекты, согласитесь получить изменения.
- Удалите проект из решения и добавьте его снова, затем выполните регистрацию
- Убедитесь, что внутренние ссылки в порядке
Ответ 28
Самый простой способ - перейти к свойству имени изменения имени пространства имен по умолчанию, после чего переименование выполняется
Ответ 29
1-Переименуйте проект за пределы VS.
2-edit your_project_name.sln с текстовым редактором, переименуйте путь к новому пути
Ответ 30
Я сделал следующее:
-
Переименуйте проект из vs2013. (необязательно/не требуется)
-
Экспортируйте проект в качестве шаблона.
-
Закройте решение.
-
Заново откройте решение
-
Создайте проект из сохраненного шаблона и используйте имя, которое вам нравится.
-
Удалить из браузера решения предыдущий проект.
В этом пункте я попытался скомпилировать новое решение, и для этого мне пришлось вручную скопировать некоторые ресурсы и заголовки в новую папку проекта из старой папки проекта. Делайте это до тех пор, пока оно не будет компилироваться без ошибок. Теперь этот новый проект сохранил файл ".exe" в предыдущей папке. *
So →
-
Перейдите в проводник Windows и скопируйте файл решения из старой папки проекта в новую папку проекта.
-
Закройте решение и откройте решение из нового проекта.
-
При необходимости измените конфигурацию (x64).
-
Удалите папку проекта со старым именем из папки решения.