Как переименовать папку проекта из Visual Studio?

мое текущее решение для переименования папки проекта:

  • удалить проект из решения.
  • переименуйте папку за пределами Visual Studio.
  • добавить проект в решение.

есть ли лучший способ?

30 ответов


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


переименовать проект папку, (.*proj) и отображаемое имя в visual studio:

  • закрыть решение.
  • переименуйте папки за пределами Visual Studio. (Переименовать в TFS при использовании системы управления версиями)
  • откройте решение, игнорируя предупреждения (ответьте "нет", если вас попросят загрузить проект из системы управления версиями).
  • пройти через все недоступен проекты и...
    • открыть свойства окно для проекта (выделите проект и нажмите клавишу Alt+ Enter или Ф4, или правой кнопкой мыши > Свойства).
    • установить свойство 'Путь К Файлу на новое место.
      • если свойство не редактируется (как в VS2012), то откройте .sln файл непосредственно в другом редакторе, таком как Notepad++, и вместо этого обновите пути. (Возможно, вам придется сначала проверить решение в TFS и т. д.)
    • перезагрузка проект-щелкните правой кнопкой мыши > перезагрузить проект.
    • изменить отображение название проекта, выделив его и нажав F2, или щелкните правой кнопкой мыши > переименовать.

Примечание: другие предлагаемые решения, которые включают удаление, а затем повторное добавление проекта в решение, нарушат ссылки на проект.

если вы выполните эти шаги, то вы также можете рассмотреть переименование следующего, чтобы соответствовать:

  1. сборка
  2. По Умолчанию / Root Пространство имен
  3. пространство имен существующих файлов (используйте инструменты рефакторинга в Visual Studio или инструмент непоследовательных пространств имен ReSharper)

также рассмотрите возможность изменения значений следующих сборка атрибутами:

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute

вы можете пожелать голосуйте за команду Visual Studio для автоматизации этой процедуры.


есть другой способ сделать это, используя *.sol, * csproj файлы.

  1. откройте файл решения
  2. поиск по *.csproj вы хотели бы изменить
  3. это будет так (относительно *.sol file):

    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"

  4. и просто измените первую часть на новую директорию, например:

    Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj

  5. конечно не забудьте переместить весь проект в этот каталог

получать удовольствие.


это прямо вперед в VS 2015 (возможно работает в старых версиях)

  1. в обозревателе решений щелкните правой кнопкой мыши на Main solution > Rename
  2. в обозревателе решений щелкните правой кнопкой мыши на project (under solution) > Rename
  3. в обозревателе решений дважды щелкните или щелкните правой кнопкой мыши на Properties > вкладка приложения goto, переименовать Assembly name и Default namespace в матче.
  4. если вы хотите переименовать пространство имен, откройте один из файлов класса. Щелкните правой кнопкой мыши namespace > Rename... это должно искать и заменять все ссылки на ваше пространство имен во всем проекте.
  5. закрыть проект > переименовать project folder.
  6. редактировать .sln файл в блокноте, измените путь к cjproj. т. е. fu\bar.csproj --> bar\bar.csproj

человеком, я боролся с этим. К сожалению, в Visual Studio нет решения с одним щелчком мыши, но если вы используете Visual Studio 2012 и ваш проект находится под контролем источник Team Foundation Server, вот как я заставил его работать, сохраняя историю источника:

(убедитесь, что вы прочитали комментарий @mjv ниже, так как он отмечает, что вы можете пропустить шаг 5-10)

  1. убедитесь, что вы зарегистрировались во всех изменения, поэтому у вас нет ожидающих изменений.
  2. удалить проект из решения, щелкнув правой кнопкой мыши и выбрав пункт удалить.
  3. теперь, в Проводнике Windows, переименуйте папку проекта.
  4. вернитесь в Visual Studio и в обозревателе решений щелкните правой кнопкой мыши решение и выбрать добавить ->существующий проект. Выберите файл проекта для проекта, который вы удалили на Шаге 2, который должен быть расположен в переименованном папка.
  5. теперь проект вернулся в решение, но проект, похоже, не добавлен в систему управления версиями. Чтобы исправить это, откройте Проводник управления версиями.
  6. найдите папку проекта в Проводнике управления версиями, которая соответствует папке проекта на диске, переименованной на Шаге 3.
  7. переименуйте папку в Проводнике управления версиями, чтобы она имела то же имя, что и папка проекта на диске.
  8. теперь взгляните на ожидание изменения. У вас должны быть изменения в файле решения и операция переименования в папке проекта.
  9. выполните перестроение и убедитесь, что все компилируется правильно. Если у вас были межпроектные ссылки на проект, который вы переименовали, вам нужно добавить их снова в отдельные проекты, которые ссылались на него.
  10. теперь все должно быть готово. Иди и проверь все.

вышеуказанное руководство работало для меня. Если он не работает для вас, попробуйте удалить локальный решение полностью и удалите сопоставление папок в рабочей области. Перезапустите Visual Studio на всякий случай. Убедитесь, что вы действительно удалили все решение с компьютера. Теперь прочитайте отображение решения в рабочей области и получите последнюю версию. Теперь попробуйте вышеуказанные шаги. То же самое относится, если что-то идет не так, следуя вышеуказанным шагам. Просто удалите свое решение локально и получите последний источник, и у вас будет чистый лист для работы.

Если вы все еще возникают проблемы, убедитесь, что вы ничего не изменили вручную в файле решения, или попробуйте другие "трюки", прежде чем пытаться выполнить вышеуказанные шаги. Если вы что-то изменили и зарегистрировали, вы можете рассмотреть возможность отката к точке непосредственно перед тем, как начать возиться с переименованием проекта.

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


В настоящее время нет. Ну, на самом деле вы можете щелкнуть сломанный узел проекта и на панели свойств искать свойство "путь", затем щелкните значок небольшого обзора и выберите Новый Путь.

вуаля :)


более простым решением является следующее:

  1. щелкните правой кнопкой мыши проект и переименовать его.
  2. (необязательно) Откройте Параметры свойств проекта и измените имя сборки (и, необязательно, пространство имен по умолчанию), чтобы использовать новое имя проекта.
  3. (необязательно) выберите имя пространства имен в исходном файле, щелкните правой кнопкой мыши и выберите Refactor\Rename, чтобы глобально переименовать пространство имен в новое имя проекта.
  4. (необязательно) откройте AssemblyInfo.цезий файл и изменить имя сборки, чтобы соответствовать.
  5. сохранить и закрыть решение.
  6. С помощью Проводника Windows переименуйте папку проекта в новое имя.
  7. откройте файл SLN в текстовом редакторе и найдите одну ссылку на путь к проекту и измените ее, чтобы использовать новое имя папки.

есть 4 необходимых шага, но 7 рекомендуется. В конце концов, проект переименован полностью. Технически, имя папки для проекта не обязательно соответствовать самому проекту, поэтому даже этот шаг является необязательным, но он может запутать, если они не совпадают. Же для сборки и пространства имен.


в ответе andersjanmyr проще сначала переименовать проект.

  1. проект переименовать.
  2. закройте решение (сохраните его).
  3. переименуйте папки за пределами Visual Studio.
  4. откройте решение, игнорируя предупреждения.
  5. просмотрите все недоступные проекты и установите свойство "путь к файлу" в новое расположение файла проекта, т. е. someproject.csproj файл.
  6. перезагрузить проект.

также, после выполнения этих шагов может потребоваться переименовать другие ссылки на старое имя проекта.

в свойствах проекта измените имя сборки и пространство имен по умолчанию. Это обновит следующее в файле проекта...

<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>

...и избавится от ошибки "пространство имен не соответствует местоположению файла, должно быть: 'SomeProjectName'"

переименуйте корневое пространство имен (если у вас есть resharper щелкните правой кнопкой мыши пространство имен и перейдите в рефакторинг -> Переименовать.)

изменить все вхождения старого имени проекта в AssemblyInfo.cs


для VS2017 вы можете использовать расширение visual studio

скачать

он переименует проект в:

  • проект папку
  • решение
  • ссылка в других проектах
  • имя сборки, информация
  • пространство имен по умолчанию

Я просто должен был сделать это сам (используя VS2010). Как ответили некоторые люди, самым простым шагом, по-видимому, является:

  1. закройте проект VS.
  2. открыть .sln-файл и переименовать префикс каталога проекта для каждого из.csproj файл происшествий.
  3. сохранить .файл sln
  4. переименуйте фактический каталог папок проекта на жестком диске в соответствии с вашими изменениями.sln файл.
  5. открыть .sln (в VS) и перестроить

см. пункт 3 в связанной статье.

  1. закройте решение и IDE.
  2. в Проводнике: измените имя каталога на новое имя.
  3. в Проводнике: откройте .sln файл с текстовым редактором.
  4. измените имя каталога на новое имя и сохраните.
  5. перезапустите IDE и откройте решение из меню Файл, последние файлы, если оно не запускается автоматически.
  6. нажмите на папку проекта из Обозревателя решений и проверьте свойство path в свойствах внизу. Теперь он будет ссылаться на новую папку проекта.

Это сработало для меня.


проверенное решение для расширения Visual Studio для Data Tools for Business Intelligence (SSDT-BI 2013):

  1. переместите папку проекта в новое место (пока ничего не переименовывайте)
  2. в обозревателе решений переименуйте проект / решение.
  3. закрыть (и сохранить) недавно переименовали проект.
  4. переименуйте папку проекта и .sln файл.
  5. используйте текстовый редактор и откройте только что переименованный файл проекта (.СЛН) (я использовал Notepad++)
  6. в строке 6 вы увидите: "проект {fdjfksdjk4387!...} = "OLDPROJECT", " OLDFOLDER\OLDPROJECT.rptproj успешно". Переименуйте все с новыми именами, используемыми на шаге 4. (т. е. ... = "NEWPROJECT", " NEWFOLDER\NEWPROJECT.rptproj успешно"... )
  7. вот именно!

протестирован на 100% и безупречно работал над моим делом.

примечание: не удается подтвердить, работает ли он в разных версиях Visual Studio a/o шаблонов проектов. Как всегда, сделайте резервную копию всего заранее.


@andersjanmyr решение: вы можете нажать Alt + Enter, чтобы открыть страницу свойств для недоступного проекта и установить там свойство "путь к файлу"; так как оно недоступно в контекстном меню правой кнопки мыши недоступного проекта (в VS2008).


Я написал небольшой инструмент, который автоматизирует все эти действия. Также поддерживает subversion на данный момент.

информацию о текущих выпусках можно найти здесь Visual Studio Project Renamer Infos

выпуски Latests теперь можно загрузить из Visual Studio Project Renamer Страница Загрузки

обратная связь очень ценится.


Примечание: это исправление для Visual Studio 2008, но должно работать здесь.

  1. С помощью Проводника Windows переименуйте обе папки решения (родительскую и дочернюю) в новое имя решения.
  2. удалить .sln файл, расположенный в родительской папке.
  3. в Visual Studio, выберите Файл|Открыть проект.
  4. сверло в новую папку, переименовать и открыть .файл csproj (находится в дочерней папке).
  5. Правой Кнопкой Мыши название проекта и переименовать его в то, что вы хотите. (Должно быть то же имя, что и папка на шаге 1.)
  6. Выберите Файл|Закрыть Решение. Диалоговое окно спросит, хотите ли вы сохранить изменения в . Нажмите Кнопку Да.
  7. в диалоговом окне Сохранить файл как укажите только что переименованную родительскую папку и нажмите кнопку Сохранить. (Примечание: убедитесь, что совпадает с именем папки. Не требуется, но сохраняет последовательность.)

сделано.


при использовании TFS Шаг 2 фактически переименовать папку в системе управления версиями, а затем получить последнюю перед повторным открытием решения.


недавно мы загрузили бета-версию бесплатного расширения VS, которое делает это для вас. Посмотрите на VS Gallery: Скачать Галерея


Ну, я сделал это мой путь

  • Закрыть Visual Studio 2012
  • переименуйте подкаталог в предпочитаемое имя под .sln
  • удалить *.СУО файл
  • снова откройте решение, исправьте все свойства загруженных проектов, чтобы встретить новое имя подкаталога

хотя на этот вопрос уже был дан ответ, я хотел поделиться своим подходом к решению этой проблемы. У меня часто была такая же проблема переименования проекта в 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

для тех, кто использует Visual Studio + git и хочет сохранить историю файлов (работает переименование проектов и/или решений):

1) Закройте Visual Studio

2) In .файл gitignore дублирует все игнорируемые пути проекта, который вы хотите переименовать с переименованными версиями этих путей.

3) используйте команду git move следующим образом:

git mv <old_folder_name> <new_folder_name>

дополнительные параметры см. В документации:https://git-scm.com/docs/git-mv

4) в ваш.sln-файл: найдите строку, определяющую ваш проект, и измените имя папки в path. Линия должна выглядеть примерно так:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"

5) Откройте Visual Studio, щелкните правой кнопкой мыши проект - > переименовать

6) затем переименуйте пространства имен. Я читал, что у resharper есть некоторые варианты для этого. Но простая находка / замена сделала работу за меня.

7) удалить старый .гитюдного пути


после изменения имени папки, открыть .sln файл в блокноте и измените путь к новому пути.


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

когда вы создаете новый проект, он сохраняется в

./path/to/pro/ject/YourProject/YourProject.**proj

предположим, вы хотели бы иметь его непосредственно в :

./path/to/pro/ject/YourProject.**proj

мой обходной путь для этого-создать проект с последней частью пути в качестве его имени, чтобы он не создавал дополнительный каталог:

./path/to/pro/ject/ject.**proj

когда вы теперь переименовываете проект из Visual Studio, вы достигаете цели, не покидая VS:

./path/to/pro/ject/YourProject.**proj

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


Я использую VS 2013 и TFS 2013.

Я сделал это так:

  1. откройте Visual Studio, не открывая само решение, и используйте проводник управления версиями для поиска и переименования папок для проектов
  2. дважды щелкните файл решения в Проводнике управления версиями, чтобы открыть решение.
  3. вы получаете вопрос: "проекты недавно были добавлены к этому решению. Вы хотите получить их из системы управления версиями?- и ты выбираешь "да"!--6-->
  4. теперь Папка и структура проекта есть, но теперь файлы, поэтому теперь вы получаете последнюю версию из системы управления версиями
  5. попробуйте создать и зафиксировать изменения.

существует более простой подход, который был протестирован в VS 2013 Update 1 и применим для проектов, связанных с TFS:

  • открыть VS, но пусть решение закрыто
  • Open Source Explorer и переименовать нужную папку (решение будет закрыто для вас, если вы еще не закрыли его первым)
  • щелкните правой кнопкой мыши на решении (из Проводника источника также) и выберите check-in
  • откройте решение, вы скажете, что добавлены новые проекты, примите, чтобы получить изменения.
  • удалите проект из решения и добавьте его снова, затем проверьте
  • проверьте, что внутренние ссылки в порядке

самый простой способ-перейти к свойству окна изменить имя пространств имен по умолчанию, затем переименовать


1-переименовать проект вне VS. 2-изменить your_project_name.sln с помощью текстового редактора переименуйте путь в новый путь


Я сделал следующее:

  1. переименуйте проект из vs2013. (необязательно / не требуется)

  2. экспорт проекта в виде шаблона.

  3. закрыть решение.

  4. открыть решение

  5. создать проект из шаблона и использовать имя, которое вам нравится.

  6. удалить из Обозревателя решений предыдущего проект.

в этот момент я пытался скомпилировать новое решение и для этого мне пришлось вручную скопировать некоторые ресурсы и заголовки в новую папку проекта из старой папки проекта. Делайте это до тех пор, пока он не компилируется без ошибок. Теперь этот новый проект спас ".exe " файл в предыдущую папку.*

Так ->

  1. перейдите в Проводник windows и вручную скопируйте файл решения из старой папки проекта в новую папка проекта.

  2. закройте решение и откройте решение из нового проекта.

  3. при необходимости изменил конфигурацию на (x64).

  4. удалите папку проекта со старым именем из папки решения.


  1. переименовать проект в решении и папку проекта

  2. удалить проект из решения

  3. добавить существующий проект в решение (переименованный проект)

это работает для меня. TFS также будет отслеживать новый проект.


то, что работало для меня в 2017 году:

  • закрыть решение VS
  • переименованный каталог проектов в решении.
    • (push change in source control-git в моем случае)
  • изменить файл sln в текстовом редакторе (вне VS2017) изменение имени каталога.
  • повторно открыть решение в VS

Он сказал что-то вроде "повторное добавление проекта", я перестроил все, и все было хорошо, чтобы идти.


или просто

скопируйте все коды, затем откройте новый проект с нужным именем и вставьте код. Запустите debug и удалите предыдущий проект. Готово!

Это сработало для меня!


щелкните "проект" > "свойства" > и (имя) на имя