Как переименовать папку проекта из Visual Studio? - PullRequest
611 голосов
/ 17 октября 2008

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

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

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

Ответы [ 32 ]

696 голосов
/ 22 октября 2008

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


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

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

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

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

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

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

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute
84 голосов
/ 17 октября 2008

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

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

    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. конечно, не забудьте переместить весь проект в этот каталог

Веселитесь.

72 голосов
/ 18 октября 2015

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

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

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

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

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

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

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

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

31 голосов
/ 17 октября 2008

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

Вуаля:)

26 голосов
/ 26 января 2016

Более простое решение:

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

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

8 голосов
/ 30 июня 2010

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

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

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

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

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

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

Переименуйте ваше корневое пространство имен (если у вас есть инструмент для повышения резкости, щелкните правой кнопкой мыши по Пространству имен и перейдите в Refactor -> Rename).

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

8 голосов
/ 29 мая 2017

Для VS2017 вы можете использовать расширение Visual Studio

скачать

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

  • папка с местоположением проекта
  • файл решения
  • ссылка в других проектах
  • Название сборки, информация
  • пространство имен по умолчанию
6 голосов
/ 22 февраля 2011

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

  1. Закройте проект VS.
  2. Откройте файл .sln и переименуйте префикс каталога проекта для каждого вхождения .csproj.
  3. Сохраните файл .sln
  4. Переименуйте действительный каталог папки проекта на вашем жестком диске, чтобы соответствовать вашим изменениям в файле .sln.
  5. Откройте .sln (в VS) и перестройте
4 голосов
/ 08 июня 2015

Проверенное решение для расширения Visual Studio для инструментов данных для бизнес-аналитики (SSDT-BI 2013):

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

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

ПРИМЕЧАНИЕ. Невозможно подтвердить, работает ли он в разных шаблонах проектов и / или в версиях Visual Studio. Как всегда, сделайте резервную копию всего заранее.

...