Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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


Чтобы переименовать папку проекта, файл (.*proj) и отображаемое имя в Visual Studio:

  • Закройте решение.
  • Переименуйте папку (и) вне Visual Studio. (Переименовать в TFS при использовании контроля версий)
  • Откройте решение, игнорируя предупреждения (ответьте "нет", если будет предложено загрузить проект из системы контроля версий).
  • Пройдите через все недоступные проекты и...
    • Откройте окно свойств проекта (выделите проект и нажмите Alt + Enter или F4 или щелкните правой кнопкой мыши> свойства).
    • Установите для свойства " Путь к файлу " новое местоположение.
      • Если свойство недоступно для редактирования (как в VS2012), откройте файл .sln непосредственно в другом редакторе, например Notepad++, и обновите пути к нему. (Вам может понадобиться сначала проверить решение в TFS и т.д.)
    • Перезагрузите проект - щелкните правой кнопкой мыши> перезагрузить проект.
    • Измените отображаемое имя проекта, выделив его и нажав F2 или щелкнув правой кнопкой мыши> переименовать.

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

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

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

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

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. 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)

  1. Убедитесь, что вы отметили все изменения, поэтому у вас нет ожидающих изменений.
  2. Удалите проект из решения, щелкнув правой кнопкой мыши и выбрав Удалить.
  3. Теперь в проводнике Windows переименуйте папку проекта.
  4. Вернитесь в Visual Studio и в Solution Explorer щелкните правой кнопкой мыши решение и выберите Add → Existing project. Выберите файл проекта для проекта, который вы удалили на шаге 2, который должен находиться в переименованной папке.
  5. Теперь проект вернулся в решение, но проект, похоже, не добавлен в систему контроля версий. Чтобы это исправить, откройте Source Control Explorer.
  6. Найдите папку проекта в Source Control Explorer, которая соответствует папке проекта на вашем диске, которую вы переименовали в шаге 3.
  7. Переименуйте папку в Source Control Explorer, чтобы она имела то же имя, что и папка проекта на диске.
  8. Теперь взгляните на ожидающие изменения. У вас должны быть изменения в файле решения и операция переименования в папке проекта.
  9. Сделайте перестройку и убедитесь, что все компилируется правильно. Если у вас были межпроектные ссылки на проект, который вы переименовали, вам нужно снова добавить их в отдельные проекты, которые ссылались на него.
  10. Вы должны быть все готово сейчас. Иди и проверить все в.

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

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

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

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

Меня устраивает. 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 →

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

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

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

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