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

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

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

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


person andersjanmyr    schedule 17.10.2008    source источник
comment
Не существует простого способа сделать это одним щелчком мыши. Во всяком случае, не из Visual Studio.   -  person Matt Hanson    schedule 17.10.2008
comment
В решении andersjanmyr: вы можете нажать ‹kbd› Alt ‹/kbd› + ‹kbd› Enter ‹/kbd›, чтобы открыть страницу свойств для недоступного проекта и установить там свойство Путь к файлу; поскольку он недоступен в контекстном меню недоступного проекта (в VisualStudio2008), вызываемом щелчком правой кнопкой мыши.   -  person Ujjwal Singh    schedule 22.10.2010
comment
Этот ответ включает процедуру для TFS и является лучшим общим ответом, который я нашел для этого: stackoverflow.com/a/10853509/10245 < / а>   -  person Tim Abell    schedule 24.05.2014
comment
Я не буду ставить это в качестве ответа, потому что вы не должны этого делать, но выполнение агентского перебора имени проекта и замена всех ссылок на него новым именем файла действительно работает, если вы включаете все папки и подпапки, и оба переименовываете файлы, а также заменяете текст в файлах. Я делал это несколько раз, и ни разу после этого не занимался очисткой больше, чем через несколько минут.   -  person kingfrito_5005    schedule 24.08.2017
comment
Для VS 2019, если ваш проект запущен, вы не можете переименовать папку (щелчок правой кнопкой мыши в верхней части папки не отображает параметр «Переименовать»). Остановите текущий процесс и попробуйте еще раз.   -  person Marco    schedule 17.11.2019
comment
@Marco, который изменит только имя проекта в VS, а не имя папки проекта. Я сделал это, и теперь имя моего проекта другое, но папка проекта все та же, что еще больше сбивает с толку. В 2019 году мне также пришлось удалить проект из решения, переименовать папку и затем снова добавить проект.   -  person Filipe Madureira    schedule 11.12.2019
comment
С VS 2019 мне было очень просто! Просто переименовал проект в VS, а затем обновил ссылку на старое имя в .sln в блокноте, после чего переименуйте имя папки проекта в каталоге. Вот и все. Я использую git, он уже подобрал изменения для фиксации (чтобы удалить old_Folder из репо и добавить new_Folder в ожидающие изменения. У меня все отлично сработало. На всякий случай вы можете попробовать это в отдельной ветке, чтобы не испортить, если что-то пойдет не так .   -  person curiousBoy    schedule 03.03.2020
comment
Глядя на 3 ответа с наибольшим количеством голосов, я вижу, что все они требуют редактирования. Я предпочитаю ответы, которые не требуют редактирования. Если вы предпочитаете не редактировать, ваш метод может быть лучшим даже в 2021 году.   -  person H2ONaCl    schedule 27.02.2021


Ответы (37)


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


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

  • Закройте раствор.
  • Переименуйте папки вне Visual Studio. (Переименуйте в TFS, если используете систему управления версиями)
  • Откройте решение, игнорируя предупреждения (ответьте «нет», если вас попросят загрузить проект из системы управления версиями).
  • Go through all the unavailable projects and...
    • Open the properties window for the project (highlight the project and press Alt+Enter or F4, or right-click > properties).
    • Set the property 'File Path' to the new location.
      • If the property is not editable (as in Visual Studio 2012), then open the .sln file directly in another editor such as Notepad++ and update the paths there instead. (You may need to check-out the solution first in TFS, etc.)
    • Перезагрузить проект - щелкните правой кнопкой мыши> перезагрузить проект.
    • Измените отображаемое имя проекта, выделив его и нажав F2, или щелкните правой кнопкой мыши> переименовать.

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

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

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

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

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute
person Community    schedule 22.10.2008
comment
Для тех, кто использует систему управления версиями, я думаю, вам также потребуется переименовать папку в системе управления версиями. Для меня вышеуказанные шаги не помогли. - person Patrick Szalapski; 09.11.2010
comment
При использовании TFS шаг 2 фактически заключается в переименовании папки в системе управления версиями, а затем получении последней версии перед повторным открытием файла sln. - person Amy Patterson; 06.10.2011
comment
Еще одно замечание ... Возможно, вам также придется воссоздать ссылки на проекты в своем решении. У меня есть решение с несколькими библиотеками связанных классов, и мне пришлось удалить и повторно добавить ссылки. - person CoderMarkus; 31.07.2012
comment
Свойство Путь к файлу становится редактируемым в VS2010 после переименования папки (и VS не может найти проект) - person Jimmy; 23.09.2012
comment
@AmyPatterson: Я думаю, что ваш комментарий достаточно важен, чтобы быть собственным ответом. Это единственное, что на этой странице абсолютно сработало для меня. - person Peter Majeed; 28.09.2012
comment
Это не сработало для меня в VS 2012; свойство только для чтения. Мне пришлось открыть файл .sln как текст. - person Grault; 24.03.2013
comment
Если вы пытаетесь сделать это с помощью проекта установки / развертывания, VS не позволит вам обновить путь. Вам нужно будет закрыть решение и отредактировать файл sln с помощью текстового редактора, а затем снова открыть. - person teynon; 06.05.2013
comment
Я попытался сделать это в VS2012, но путь к файлу был доступен только для чтения, и даже если я изменил пути в файле * .sln, решение все равно не смогло найти файл моего проекта. В конце концов я понял, как это сделать, не связываясь с файлом * .sln или другими «хитростями». См. мой ответ ниже, чтобы получить пошаговое руководство о том, как это сделать, сохранив при этом историю системы управления версиями. - person René; 14.06.2013
comment
Путь кажется редактируемым в VS2013, и согласно этому отличному ответу stackoverflow.com/a/10853509/10245 это было в VS2010 тоже. - person Tim Abell; 24.05.2014
comment
Когда я переименовываю папку вне VS, я больше не могу открыть решение ... Там нет проекта. Проект не найден. Но я могу открыть сам проект. Я использую VS2013 - person monstr; 29.10.2015
comment
В VS2013 (и, возможно, в более поздних версиях) вам больше не нужно делать последний шаг, он достаточно умен, чтобы автоматически распознавать новое имя проекта. - person gzak; 18.12.2015
comment
Я сделал это и впоследствии обнаружил, что ни одно из действий моего контроллера не работает. Они создали 404. Если я добавлю новый контроллер и действие, точно такое же во всех отношениях (кроме имени контроллера), новый будет работать. Но не оригинал. После долгой царапины в голове (трассировка журнала iis, возня с application.config, его выключение и повторное включение и т. Д.) Я удалил папки bin и obj для проекта, почистил и перестроил. Это исправило это. - person GPR; 21.11.2016
comment
Использовал этот метод для переименования проекта WebApi, исправил все пространства имен с помощью resharper, но путь в файле Global.asax (тот, который без расширения .cs) не был исправлен! Думаю, нужно добавить в инструкцию - person sad_robot; 12.04.2017
comment
В VS2015 вы можете изменить свойство Путь к файлу с помощью трех точек. Но в VS2017 это больше невозможно (и VS не может загрузить проект) - person HolgerJeromin; 06.04.2018
comment
также не забудьте переименовать все ссылки на проекты внутри кода C #, например, в операторах using в классах C # и представлениях и т. д. - person Mohammad; 18.04.2019
comment
редактирование файла .sln напрямую было быстрым и последним шагом, чтобы заставить его работать для меня - person Andrew; 23.04.2019
comment
Это было для меня ближе всего, но в VS2019 мне пришлось выйти из VS, переименовать папку, изменить .sln, чтобы указать на новый проект в решении, а затем перезагрузить решение. - person Zonus; 15.07.2020

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

  1. В обозревателе решений щелкните правой кнопкой мыши Основное решение Переименовать.
  2. В обозревателе решений щелкните правой кнопкой мыши проект (под решением) Переименовать
  3. В обозревателе решений дважды щелкните или щелкните правой кнопкой мыши Свойства, перейдите к вкладке приложения, переименуйте Имя сборки и Пространство имен по умолчанию чтобы соответствовать.
  4. Если вы хотите также переименовать пространство имен, откройте один из файлов вашего класса. Щелкните правой кнопкой мыши пространство имен Переименовать .... Это должно найти и заменить все ссылки на ваше пространство имен по всему проекту.
  5. Закройте проект и переименуйте папку проекта.
  6. Отредактируйте .sln файл в Блокноте и измените путь к csproj, т. Е. fu\bar.csproj bar\bar.csproj.
person wired00    schedule 18.10.2015
comment
Вы забыли обновить ссылки на проекты в зависимых проектах (если есть). - person Steven Liekens; 06.11.2015
comment
Не забудьте применить шаг 4 к папке подпроекта (это был единственный шаг, который мне не хватало, чтобы шаг 6 работал). - person Felipe Gutierrez; 11.09.2019
comment
Когда я его читал, вопрос не в том, как изменить отображаемое имя проекта в VS или имя .exe (возможно, спрашивающий уже сделал все это), а в том, чтобы конкретно спросить, как переименовать папку проекта (в файловую систему) и синхронизируйте .sln. Так что только шаги 5 и 6 кажутся актуальными. Но это действительно кажется лучшим обходным путем из-за отсутствия способа сделать это из VS. - person Stewart; 01.10.2020
comment
В Visual 2019 на шаге 3) двойной щелчок или щелчок правой кнопкой мыши по свойствам неэффективен, поэтому я не могу перейти на вкладку «Приложение». - person Ben_LCDB; 12.11.2020
comment
Это сработало для меня, но просто обратите внимание, что ссылка на решение в недавнем списке VS Open по-прежнему будет указывать на старое имя папки, создавая впечатление, что что-то испортилось. Используйте мастер открытия проекта или решения, чтобы открыть его заново. - person ChiefMcFrank; 19.02.2021

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

person rabashani    schedule 17.10.2008
comment
Это сработало для меня, а не для принятого ответа, который не сработал, потому что свойство FilePath было для меня доступно только для чтения. - person T.J.Kjaer; 07.02.2013
comment
спасибо, это очень помогло. Также не забудьте также изменить значения RootNamespace и AssemblyName. - person DevDave; 29.05.2013
comment
Это не сработало для меня в VS2019. Выдает предупреждения о том, что ссылки на проект не существуют, и об ошибках компиляции об отсутствии пространств имен и классов в проекте, на который указывает ссылка. - person Jeff Walker Code Ranger; 12.05.2020
comment
У меня это работает в Visual Studio 2019 с проектами C #. Это довольно простое решение. Людям, у которых могут возникнуть проблемы при компиляции, я рекомендую полностью пересобрать проект, а не только компилировать. - person Ader Silva; 19.05.2020

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

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

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

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

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

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

person René    schedule 13.06.2013
comment
Спасибо за представление процедуры, которая работает в VS2012! Обратите внимание, что вы можете избежать шагов 5-10 (т.е. необходимости вернуть переименованные папки в Source Control), если вместо этого вы закроете решение, а затем переименуете папки в VS' Source Control Explorer, а не в Windows Explorer. - person mjv; 30.07.2013
comment
Эти шаги были близки, но изменение местоположения папки с помощью проводника Windows (WE) перед переименованием в проводнике управления исходным кодом (SCE) вызывало ошибку: Folder already exists. Поэтому мне пришлось снова переименовать папку в WE, затем изменить ее в SCE, а затем скопировать файлы в эту папку, прежде чем это сработало. Так что следуйте за комментарием от mjv выше. Я также не думал о необходимости изменять фактические имена файлов проекта (не только в VS), что я сделал в конце концов, заставив меня повторить некоторые из этих шагов. - person CaptainBli; 28.04.2014
comment
Этот подход с комментарием mjv работает в Perforce с щелчком правой кнопкой мыши, а также с параметром «Переименовать / переместить». - person santos; 13.05.2014
comment
Вы можете избежать нарушения ссылок на проекты, см. stackoverflow.com/a/10853509/10245 - person Tim Abell; 24.05.2014
comment
@TimAbell Вы пробовали эту процедуру в VS2012, и она сработала у вас? Прежде чем я написал свой ответ, я попробовал это, но у меня это не сработало, потому что путь к проекту в окне свойств всегда был доступен только для чтения. И редактировать SLN-файл тоже не получилось. - person René; 24.05.2014
comment
Он работал в VS2013, в 2012 году не пробовал. Вы можете обойти проблему только для чтения, отредактировав файл непосредственно в блокноте ++ или в чем-то подобном. - person Tim Abell; 24.05.2014
comment
Это единственный способ, которым это сработало для меня в VS2013 (Ultimate) (структура .sln отличается от структуры VS2008 или более поздней версии, возможно, она похожа на VS2012) - person hB0; 04.08.2015

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

Вуаля :)

person mortenbpost    schedule 17.10.2008
comment
При использовании VS2015 имя свойства Unloaded Project Properties - Путь к файлу, а значение нельзя редактировать и просматривать. - person William; 06.09.2016

Более простое решение следующее:

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

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

person Md. Shafiqur Rahman    schedule 26.01.2016
comment
Альтернативный шаг 7. Откройте файл SLN с помощью VS, игнорируйте предупреждения (нажмите OK), выберите проект (ы) в обозревателе решений, нажмите F4, обновите путь к файлу. Необязательный шаг 0: щелкните решение правой кнопкой мыши и переименуйте его. - person Martin Schneider; 15.06.2016
comment
Невероятно, как сложно Microsoft делает некоторые вещи - person Alex; 10.02.2017
comment
Это сработало для меня в Visual Studio Community 2017. Принятый ответ не сработал (для меня); свойство, которое необходимо изменить, доступно только для чтения и не может быть изменено в диалоговом окне свойств. - person codingatty; 18.01.2018
comment
Для программирования надстроек я использовал это руководство, но мне пришлось дополнительно переименовать файлы .manifest и .addin, включая все экземпляры старого имени в их исходном тексте. - person Dounchan; 06.02.2021

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

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

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

В свойствах проекта обновите имя сборки и пространство имен по умолчанию.

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

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

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

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

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

person CRice    schedule 30.06.2010
comment
Основываясь на этом ответе, вы можете вручную отредактировать файл решения, чтобы путь к проекту был вашим новым путем и избежать предупреждений при открытии решения. Вероятно, вы можете щелкнуть Project ›Properties› AssemblyInfo, чтобы отредактировать информацию о сборке из VS и избежать редактирования файла AssemblyInfo.cs. - person H2ONaCl; 21.10.2014

Для тех, кто использует 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.

person ivke    schedule 17.08.2018

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

Загрузить

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

  • Папка расположения проекта
  • Файл решения
  • Ссылки в других проектах
  • Название сборки, информация
  • Пространство имен по умолчанию
person Kuanysh    schedule 29.05.2017
comment
классно! устал от всех ручных переименований, которые мне приходилось делать в прошлом. Работает хорошо. Однако не нашел строковой ссылки в другом пакете. Не уверен, намеренно ли это. - person frostymarvelous; 17.07.2017
comment
Спасибо. но я не понял следующего: строковая ссылка в другом пакете. Вы можете это объяснить? - person Kuanysh; 18.07.2017
comment
Итак, у меня есть тестовый проект, и у меня есть [assembly: InternalsVisibleTo("MyTests")]. Когда я переименовал MyTests, он не переименовал эту ссылку. Опять же, я не думаю, что это входит в вашу компетенцию, и это легко решить вручную. - person frostymarvelous; 18.07.2017
comment
Ты прав. Расширение не имеет такой возможности. - person Kuanysh; 20.07.2017
comment
Потрясающие! Я просто скачал ваше расширение, и оно сработало. Однако было бы неплохо, если бы он позволял при желании исправить и пространства имен. - person taquion; 13.09.2017
comment
Спасибо. Исправление пространств имен было реализовано для проектов C #. Вы можете проверить это, обновив расширение - person Kuanysh; 18.09.2017
comment
Это расширение у меня не работало (проект C ++ на VS 2017). Помимо других проблем, он не сохранял фильтры внутри обозревателя решений. Для больших проектов это было бы очень неприятно. Если вы хотите попробовать, сначала убедитесь, что у вас есть полная резервная копия! - person Lorien Brune; 01.10.2017
comment
Это расширение предполагает, что папка в настоящее время имеет то же имя, что и проект (до переименования). Если они различаются, переименование не удастся :( Я также не заставил работать Rename Namespaces. К счастью, я использовал его только в довольно небольших решениях. В остальном - отлично! - person savehansson; 19.01.2018
comment
Хорошая работа, но у меня не сработало, хотя я закрыл все файлы - person dE Source; 15.03.2018
comment
@dESource, пожалуйста, создайте проблему с трассировкой стека исключения в github.com/kuanysh-nabiyev/RenameProjectVsExtension/issues < / а> - person Kuanysh; 16.03.2018
comment
Извините, ссылка не работает! - person Massimiliano Kraus; 21.05.2018
comment
@MassimilianoKraus Я делаю расширение закрытым из-за последних отрицательных отзывов на торговой площадке без объяснения причин. простите за это. Я обновил ссылку - person Kuanysh; 21.05.2018

Мне просто пришлось сделать это самому (используя Visual Studio 2010). Как ответили некоторые, самый простой шаг, по-видимому, заключается в следующем:

  1. Закройте проект Visual Studio.
  2. Откройте файл .sln и переименуйте префикс каталога проекта для каждого экземпляра .csproj.
  3. Сохраните файл .sln
  4. Переименуйте фактическую директорию папки проекта на жестком диске, чтобы она соответствовала вашим изменениям в файле .sln.
  5. Откройте .sln (в Visual Studio) и перестройте
person John Im    schedule 22.02.2011
comment
Это действительно кажется самым простым способом сделать это, хотя я предпочитаю сделать шаг 4 перед шагом 2. - person cph; 16.07.2021

Используя Visual Studio 2019, я выполнил следующие шаги, чтобы изменить имя проекта успешно:

  1. Закройте решение
  2. Переименуйте папку проекта, чтобы она соответствовала новому названию проекта.
  3. Откройте файл решения в редакторе notepad ++ и отредактируйте FilePath с новой папкой имени проекта.
  4. Откройте решение и нажмите Нет, если он спросит, хотите ли вы открыть из системы управления версиями.
  5. Щелкните правой кнопкой мыши проект, который вы хотите переименовать, и нажмите Свойства, затем измените ниже: Изменить имя сборки, пространство имен сборки по умолчанию и информацию о сборке с новым именем.
  6. Откройте любой файл и переместите файл в новое пространство имен, которое будет выполняться всеми файлами.
  7. Если у вас есть файлы типа app.config, обязательно переместите их также в новое пространство имен.
  8. Восстановите его, и он будет успешно работать
person RJN    schedule 23.07.2020
comment
В Visual Studio 2019 я не могу найти имя сборки, пространство имен сборки по умолчанию и информацию о сборке (в свойствах проекта) на шаге 5). Более того, ваш ответ сохраняет старое имя файла proj. - person Ben_LCDB; 12.11.2020

Что сработало для меня в Visual Studio 2017:

  • Закрыть решение в Visual Studio
  • Rename the directories of projects in the solution.
    • (push change in source control - Git in my case)
  • Отредактируйте файл .sln в текстовом редакторе (за пределами Visual Studio 2017), изменив имя каталога.
  • Повторно откройте решение в Visual Studio

Было сказано что-то вроде «повторное добавление проекта». Я все перестроил, и все было хорошо.

person Charles Plager    schedule 29.06.2018
comment
Кроме того, вам может потребоваться удалить старый проект из зависимостей других проектов и повторно добавить недавно переименованный проект в качестве новой зависимости (щелкните правой кнопкой мыши старый проект ›› Удалить, затем щелкните правой кнопкой мыши Dependencies ›› Add reference ›› Выберите свой новый проект) - person maxshuty; 04.02.2020

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

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

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

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

person alejandrob    schedule 08.06.2015

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


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

У меня это сработало.

person Jim Lewis    schedule 21.10.2010

Мне приходилось делать это много раз. Действительно полезно иметь возможность перепрофилировать существующий проект, но иметь возможность переименовывать текст в пространствах имен, файлах и папках (включая имена файлов / каталогов).

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

С этой целью я создал проект для этого. Приложение также пытается игнорировать папки контроля версий, такие как .git, .svn и файл настроек .vs. Больше информации в README.

https://github.com/garethrbrown/vs-project-rename

Пример

person gb2d    schedule 27.02.2019
comment
Хорошая работа! Ваш проект на самом деле является инструментом переименования. Я думаю, что действительно не хватает одного: возможности сопоставления всего слова. - person Eliahu Aaron; 05.12.2019

Я просто решил эту проблему для себя, написав глобальный инструмент dotnet (который также учитывает git + history).

Установить через dotnet tool install -g ModernRonin.ProjectRenamer, использовать с renameproject <oldName> <newName>.

Документация / Занятия / PR на

https://github.com/ModernRonin/ProjectRenamer

person Modern Ronin    schedule 04.09.2020
comment
Между тем, инструмент также занимается перемещением проектов в разные каталоги и т. д. - person Modern Ronin; 16.12.2020
comment
Этот инструмент отлично работал в моем проекте. Спасибо тебе за это! - person Ben Palmer; 25.01.2021
comment
Рад, что помог :-) - person Modern Ronin; 11.02.2021

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

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

Выполнено.

person Robo A GoGo    schedule 23.06.2010

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

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

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

Мы очень ценим обратную связь.

person Razer    schedule 21.08.2011

У меня часто возникала одна и та же проблема с переименованием проекта в Visual Studio и редактированием имени папки, имени проекта и файла .sln для этого. Я только что написал сценарий VBScript, который выполняет все это. Вы должны быть осторожны со струнами, которые вы выбираете для замены.

Вам просто нужно поместить файл .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
person Valkyrias    schedule 27.08.2017

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

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

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

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

person Vlad    schedule 13.06.2018

У меня это хорошо сработало в Visual Studio 2019.

  1. Переименуйте проекты решений в Visual Studio, просто щелкнув имена файлов одним щелчком, как обычно.
  2. Переименуйте пространства имен в Visual Studio.
  3. Переименуйте нужные элементы на главной странице проекта (место публикации, приложение, пространство имен по умолчанию и т. Д.). Как правильно отмечено, это ничего не делает для папок, но переименовывает файлы проекта и связывает все вместе в Visual Studio.
  4. Закройте Visual Studio.
  5. Переименуйте папки.
  6. Откройте Visual Studio и ответьте «нет» на получение проектов из системы управления версиями.
  7. Удалите выгруженные ссылки на проект.
  8. Добавьте каждый проект обратно, используя Добавить существующий проект из решения. Это связывало все воедино, и проект был построен для меня.

Прокомментируйте и исправьте все вышеперечисленное, что не работает.

person Joe Moore    schedule 04.03.2021

Так я переименовал свой существующий проект в VS19.

  1. Закройте проект Visual Studio
  2. Переименуйте и откройте каждое имя папки проекта на вашем диске
  3. Переименуйте каждый .csproj
  4. Откройте файл .sln и переименуйте префикс каталога проекта для каждого экземпляра .csproj.
  5. Откройте файл .sln в Visual Studio и перестройте
  6. Обновите ссылку prevoius nameSpace на новую, просматривая каждый файл или используя ReplaceAll
person NepoKale    schedule 04.07.2021

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

person Amy Patterson    schedule 12.10.2012

Недавно мы загрузили бета-версию бесплатного расширения Visual Studio, которое делает это за вас.

Взгляните на галерею Visual Studio: Загрузить галерею

person user3652868    schedule 20.02.2015

Что ж, я сделал это по-своему

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

  1. Переименуйте проект вне Visual Studio.
  2. Отредактируйте your_project_name.sln с помощью текстового редактора и переименуйте путь на новый путь.
person user1062770    schedule 20.08.2015
comment
Это похоже на текущее решение и немного сложнее. - person bowlturner; 20.08.2015

Откройте .sln в текстовом редакторе и в следующей строке измените ‹FolderName> на новое имя папки Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-A103-C19AF869D965} "

person Hasala Senevirathne    schedule 26.01.2019

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

person LastTribunal    schedule 18.03.2013

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

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

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

Предположим, вы хотели разместить его прямо в папке ject:

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

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

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

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

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

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

person Etan    schedule 23.08.2013

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

У меня так получилось:

  1. Откройте Visual Studio, не открывая само решение, и используйте Source Control Explorer для поиска и переименования папок для проектов.
  2. Дважды щелкните файл решения в Source Control Explorer, чтобы открыть решение.
  3. Вы получаете вопрос: «В это решение недавно были добавлены проекты. Вы хотите получить их из системы управления версиями?», и вы выбираете Да.
  4. Теперь папка и структура проекта есть, но теперь файлы, так что теперь вы получаете последнюю версию из системы контроля версий.
  5. Попробуйте создать и зафиксировать изменения.
person Muris    schedule 25.04.2014
comment
так что никаких вещей Windows Explorer. В конце концов, вы можете удалить все локальные файлы и получить весь (чистый) проект из системы управления версиями. - person Muris; 25.04.2014
comment
Я только что узнал, что из-за перестановки папок этот файл решения также может создавать пустую папку, в которой хранился какой-то проект. Затем откройте файл решения в блокноте и уменьшите количество свойств SccNumberOfProjects на количество созданных пустых каталогов и удалите соответствующие SccProjectUniqueName #, SccProjectName #, SccLocalPath # и другие свойства с тем же #. - person Muris; 29.04.2014

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

  • Откройте Visual Studio, но позвольте решению быть закрытым.
  • Откройте Source Explorer и переименуйте нужную папку (решение будет закрыто для вас, если вы его еще не закрыли).
  • Щелкните решение правой кнопкой мыши (также в Source Explorer) и выберите возврат.
  • Откройте решение. Вам сообщат, что добавлены новые проекты. Примите, чтобы получить изменения.
  • Удалите проект из решения и добавьте его снова, а затем отметьте его.
  • Убедитесь, что внутренние ссылки в порядке.
person Mohamed Emad    schedule 29.04.2014

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

person hjbjh    schedule 22.07.2015
comment
О каком окне вы говорите? Вы имеете в виду окно свойств проекта? - person Peter Mortensen; 24.01.2020

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

‹Создать резервную копию всей папки>

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

  2. Экспортируйте проект как шаблон.

  3. Закройте раствор.

  4. Откройте решение

  5. Создайте проект из сохраненного шаблона и используйте желаемое имя.

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

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

So ->

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

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

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

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

person Community    schedule 25.03.2017

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

У меня это сработало!

person Community    schedule 23.09.2018

Перейдите в файл .sln, щелкните правой кнопкой мыши, откройте с помощью Notepad ++ (или любого другого редактора; Notepad ++ - самый быстрый), найдите путь, измените его.

person Ziad    schedule 04.02.2020
comment
Этого недостаточно для проекта C ++ с Visual Studio 2019, это вызывает сбой при загрузке проекта. - person Ben_LCDB; 12.11.2020

Я пытался rename открыть папку в сообществе Visual Studio 2019 и не смог ее найти.

Однако я понял, что while the code is running you can not change the name of the folder.

Ответ:

  1. Остановите запуск вашего приложения;
  2. Затем щелкните папку правой кнопкой мыши, и там появится имя rename.
person Elias Prado    schedule 26.02.2021

Щелкните правой кнопкой мыши проект Свойства и задайте (имя) необходимое имя.

person Bilal Ahsan    schedule 19.03.2018