Правильный способ переименования решения (и каталогов) в Visual Studio

У меня есть довольно активное решение Visual Studio (2010, но это не имеет значения), который мне нужно переименовать.

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

Есть ли официальный способ сделать это? Альтернативно (и гораздо менее предпочтительно) существуют ли свободные инструменты для этого?

Ответ 1

Вручную отредактировать файл .sln

Этот метод целиком нацелен на переименование каталога для проекта, как показано в проводнике Windows.

Этот метод не страдает от проблем в Remove/add project file method ниже (ссылки исчезают), но это может привести к проблемам, если ваш проект находится под контролем источника (см. примечания ниже), Вот почему шаг 2 (резервное копирование) настолько важен.

  • Закрыть Visual Studio.
  • Создайте резервную копию своего .sln файла (вы всегда можете откат).
  • Представьте, что вы хотите переименовать каталог "Project1" в "Project2".
  • Если вы не используете исходный элемент управления, переименуйте папку из "Project1" в "Project2" с помощью проводника Windows.
  • При использовании источника управления переименуйте папку из "Project1" в "Project2", используя функции, предоставляемые с помощью элемента управления источником. Это сохраняет историю файла. Например, с помощью TortoiseSVN щелкните правой кнопкой мыши на файле, выберите TortoiseSVN .. Rename.
  • В файле .sln отредактируйте все экземпляры "Project1" как "Project2", используя текстовый редактор, например NotePad.
  • Перезапустите Visual Studio, и все будет работать по-прежнему, но с проектом в другом каталоге.

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

<сильные > Преимущества

  • Вы можете сделать каталог в проводнике Windows соответствующим названию проекта в решении.
  • Этот метод не удаляет любые ссылки из других проектов в этот файл (преимущество над методом удаления/добавления проекта, см. мой другой ответ ниже).

Предупреждения

  • Важно перевернуть все содержимое в .zip файл, прежде чем переименовать что-нибудь, так как этот метод может создавать проблемы с контролем источника.
  • Если ваш проект находится под контролем источника, он может создавать проблемы при переименовании файлов или каталоги вне контроля источника (с помощью проводника Windows). Предпочтительно переименовать файл, используя исходную структуру управления, если можно, сохранить историю этого файла (проверьте контекстное меню по правому клику - он может иметь функцию для переименования файл).

Обновление 2014-11-02

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

  • Переименуйте пространство имен в соответствии с именем каталога в проводнике Windows или;
  • Переименуйте каталог в проводнике Windows в соответствии с пространством имен.

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

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

enter image description here

Обновление 2018-01-31

Протестировано с Visual Studio 2008, 2010, 2012, 2013, 2015, 2017 Обновление 1, 2, 3, 4, 5.

Ответ 2

Ниже перечислены шаги, которые необходимо выполнить для переименования решения:

  • В обозревателе решений щелкните правой кнопкой мыши проект, выберите "Переименовать" и введите новое имя.
  • В обозревателе решений щелкните правой кнопкой мыши проект и выберите "Свойства". На вкладке "Приложение" измените "Название сборки" и "По умолчанию Пространство имен".
  • В главном файле cs (или любых других файлах кода) переименуйте пространство имен объявление для использования нового имени. Для этого щелкните правой кнопкой мыши пространство имен и выберите "Рефакторинг" > "Переименовать", введите новое имя. Например:                      namespace WindowsFormsApplication1
  • Измените AssemblyTitle и AssemblyProduct в Свойства /AssemblyInfo.cs.

    [assembly: AssemblyTitle("New Name Here")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("")]
    [assembly: AssemblyProduct("New Name Here")]
    [assembly: AssemblyCopyright("Copyright ©  2013")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    
  • Физически удалять каталоги bin и obj.

  • Переименуйте каталог физической папки проекта.

  • Откройте файл SLN (в блокноте или любом редакторе) и измените путь к проекту.

  • Очистить и перестроить проект.

Ответ 3

Операции переименования в визуальной студии изменяют только имя файла, т.е. для проекта, *.prj и для решения *.sln. Вам нужно будет переименовать папки отдельно с помощью файловой системы, и вам нужно будет удалить и прочитать проекты, так как они будут иметь новые имена. Однако обратите внимание, что файлы решений и проектов представляют собой файлы texst и xml. Вы можете написать свою собственную программу, которая анализирует их и переименовывает имена папок, имена файлов и исправляет файлы проекта/решения внутри.

Ответ 4

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

Ответ 5

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

Отредактируйте любые найденные и переработанные файлы xml, теперь должно быть хорошо.

Ответ 6

Ниже приведен пошаговый способ переименования всего вашего решения в Visual Studio 2013

Предполагая, что мы меняем проект с именем "HelloWorld.ui" на "Section1to5.ui"

  • Перейдите в проводник решений (снимок экрана ниже), щелкните правой кнопкой мыши проект, который вы хотите переименовать, и выберите "Переименовать". Введите новое имя, которое вы хотите.

Скриншот Solution Explorer

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

  2. В основном файле Program.cs(или любых других файлах кода, которые вы, возможно, создали), переименуйте декларацию пространства имен, чтобы использовать новое имя. Для этого щелкните правой кнопкой мыши пространство имен и выберите "Рефакторинг" > "Переименовать", введите новое имя. Например:

    namespace HelloWorld.ui ---- > namespace Section1to5.ui

  3. Затем разверните "Свойства" и дважды щелкните файл AssemblyInfo.cs. Вы увидите фрагмент кода ниже:

[assembly: AssemblyTitle("HelloWorld.ui")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("HelloWorld.ui")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Вам нужно изменить AssemblyTitle и AssemblyProduct в Properties/AssemblyInfo.cs на новое имя, в этом примере от "HelloWorld.ui" до "Section1to5.ui" . После завершения изменения имени сохраните и закройте Visual Studio.

  1. В каталоге проекта зайдите в папку "HelloWorld.ui" и удалите каталоги "bin" и "obj".

  2. Как только вы закончите, переименуйте папку "HelloWorld.ui" в новое название проекта.

  3. Откройте файл переименованных решений с помощью текстового редактора, например "Блокнот" или "Блокнот ++", и отредактируйте следующую строку:

    Project ( "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" ) = "HelloWorld.ui" , "HelloWorld.ui\HelloWorld.ui.csproj", "{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}"

Замените все экземпляры "HelloWorld.ui" новым именем, которое вы выбрали для своего проекта, в данном случае "Section1to5.ui" . Это изменит путь проекта к переименованному каталогу на шаге 6.

  1. Откройте файл решений с помощью visual studio и очистите и перестройте проект.

  2. Вы можете заметить, что кнопка "Отладка/Запуск" была заменена кнопкой "Прикрепить". Если это произойдет, просто щелкните правой кнопкой мыши по проекту и выберите вариант "Сделать как проект StartUp". Кроме того, нажмите "Инструменты" > "Настроить" > "Команды" > "Добавить команду" > "Отладка" и добавьте кнопку.

Вы закончили переименование проекта, если у вас есть какие-либо сомнения, вы можете свободно публиковать сообщения, и я был бы рад помочь!

Ответ 7

Удалить/добавить файл проекта

Этот метод целиком нацелен на переименование каталога для проекта, как показано в проводнике Windows.

  • Резервное копирование всего проекта, используя что-то вроде GIT, SVN или WinZip (важно!).
  • В рамках решения в Visual Studio удалите проект.
  • Переименуйте каталог в Проводнике Windows.
  • Добавьте проект обратно в Visual Studio.

<сильные > Преимущества

  • Вы можете сделать каталог в проводнике Windows соответствующим названию проекта в решении.

Недостатки

  • Если вы удаляете библиотеку, она удаляет любые ссылки на указанную библиотеку из других проектов. После этого решение не может компилироваться, пока вы не добавите ссылки на указанную библиотеку (это довольно просто). Именно по этой причине шаг 1 (резервное копирование) настолько важен.
  • Если у вас есть контроль источника, вы потеряете историю файла.

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

Ответ 9

Я попробовал Renamer Project Studio Visual Studio, но в нескольких случаях, когда я это пробовал, он исключил исключения.

У меня был хороший успех с CopyWiz.

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

Ответ 10

Если вы создаете сайт в Visual Studio 2010. Вы можете изменить название проекта следующим образом.

Шаг 1. В Visual Studio 2010 файл SLN будет сохранен в папке проекта в Visual Studio 2010, а исходные файлы хранятся в папке "Веб-сайт" в Visual Studio 2010.

Шаг 2: Переименуйте папку, щелкнув правой кнопкой мыши по этой папке вперед с помощью Rename, которая содержит ваш проект SLN.

Шаг 3. Переименуйте имя файла SLN, щелкнув правой кнопкой мыши по этому файлу SLN с помощью переименования.

Шаг 4: Переименуйте папку, содержащую Источник этого файла SLN под Веб-сайтом в Visual Studio 2010.

Шаг 5: Затем, наконец, дважды щелкните свой SLN файл и измените корень исходной папки SLN.

Ответ 11

Единственное решение, которое работает для меня на Visual Studio 2013 в WEB-проекте:

Предположим, что я хочу переименовать "project1" в "project2". Допустим, что физический путь к моему .sln файлу: C:\My\путь\project1\project1.sln

поэтому путь к моему .csproj файлу, а также к папке bin и obj должен быть: C:\My\путь\project1\project1\

  • Откройте решение в VS, дважды щелкнув файл project1.sln.

  • В обозревателе решений щелкните правой кнопкой мыши проект (НЕ решение!!!), выберите "Переименовать" и введите новое имя.

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

  • В главном файле CS (или любых других файлах кода, например, Global.asax), переименуйте декларацию пространства имен, чтобы использовать новое имя. Для этого щелкните правой кнопкой мыши пространство имен и выберите "Рефакторинг" > "Переименовать" , введите новое имя. Например:

пространство имен project1

4.1 В обозревателе решений щелкните правой кнопкой мыши проект (НЕ решение!!!), выберите "Переименовать" и введите новое имя.

  1. Убедитесь, что в AssemblyTitle и AssemblyProduct в свойствах /AssemblyInfo.cs установлено новое имя ( "project2" ).

1 [сборка: AssemblyTitle ( "Новое имя здесь" )] 2 [сборка: AssemblyDescription ("")] 3 [сборка: AssemblyConfiguration ("")] 4 [сборка: AssemblyCompany ("")] 5 [сборка: AssemblyProduct ( "Новое имя здесь" )] 6 [сборка: AssemblyCopyright ( "Copyright © 2013" )] 7 [сборка: AssemblyTrademark ("")] 8 [сборка: AssemblyCulture ("")]

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

  2. Физически удалять каталоги bin и obj.

  3. Переименуйте родительскую папку и исходную папку в новое имя (project2):

В примере: C:\My\путь\project1\project1

будет: C:\My\путь\project2\project2

  1. Переименуйте имя файла SLN, щелкнув правой кнопкой мыши по этому файлу SLN с помощью переименования.

  2. Затем, наконец, откройте файл SLN (в блокноте или любом редакторе) и скопируйте и замените (Ctrl + h) любое старое имя на новое имя.

  3. Откройте VS и нажмите BUILD → Clean Solution

  4. нажмите "Сборка" → "Создать решение", а затем F5 для запуска...

  5. Примечание1: Если вы получаете что-то вроде этого: Ошибка компиляции CS0246: имя типа или пространства имен 'project2' не может быть найдено (вам не хватает директивы using или ссылки на сборку?)

Исходный файл: c:\Users\Username\AppData\Local\Temp\Временные файлы ASP.NET\root\78dd917f\d0836ce4\App_Web_index.cshtml.a8d08dba.b0mwjmih.0.cs

Затем перейдите в папку "Временные файлы ASP.NET" и удалите все.

  1. Примечание2: Если вы пытаетесь выполнить "сохранить как" в новый именованный проект и сохранить также старый, подумайте о дублировании вашей базы данных, изменив connectionStrings в web.config, а также перезапустив миграцию, если у вас есть один в проекте.

Ответ 12

Я новичок в VS. У меня была такая же проблема: нужно было переименовать начатый проект после пары недель работы. Это то, что я сделал, и это сработало.

  • На всякий случай сделайте резервную копию своей папки Project, хотя вы не будете прикоснуться к нему, но на всякий случай!
  • Создайте новый проект и сохраните его, используя имя, которое вы хотите для своего "нового", project, то есть имя, которое вы хотите изменить для своего старого проекта.
  • Постройте его. После этого у вас будет проект с именем, которое вы хотели, но что он ничего не делает, кроме как открыть окно (приложение Windows Form в мой случай).
  • При открытии нового проекта, нажмите "Проект- > Добавить существующий" и используйте Проводник Windows найдите свою "старую" папку "Проект" и выберите все файлы под... Visual Studio xxx\Projects\oldApp\oldApp
  • Выберите все файлы там (.vb,.resx) и добавьте их в свой новый проект (тот, который должен быть уже открыт).
  • Самый последний шаг - открыть файл проекта с помощью решения
    Проводник и на первой вкладке измените форму запуска по умолчанию на форму это должно быть.
  • Восстановить все.

Возможно, больше шагов, но меньше или вообще не набирается, просто некоторые щелчки мыши. надежда это помогает:)

Ответ 13

Если у вас возникли проблемы с загрузкой общих проектов, таких как Xamarin, не забудьте изменить ссылку на общие библиотеки в файлах csproj. Я разработал игру CocosSharp, а проекты Droid/iOS/WP81 не хотели загружаться. Мне пришлось изменить строку ниже в каждом файле csproj (Driod/iOS/WP81), который ссылался на общую библиотеку. Это вызвано изменением имен папок, поэтому замените YOUR_PREVIOUS_NAMESPACE новыми именами папок.

<Import Project="..\YOUR_PREVIOUS_NAMESPACE.Shared\EmptyProject.Shared.projitems" Label="Shared" />

Также я заметил, что для проектов .Driod имя сборки в свойствах проекта нельзя изменить с помощью visual studio (я использую 2015). Мне нужно было изменить имя сборки вручную в файле .Droid.csproj.

<AssemblyName>YourNameSpace</AssemblyName>

Затем я загрузил решение и в свойствах проекта появилось новое имя. После восстановления dll с этим именем был создан.

Ответ 14

Вы можете:

  • click file- > new → создать проект из существующего проекта

  • выберите исходный файл, например. решение 1 и введите новое решение для имени файла 2

  • изменить название проекта в новом решении 2

Ответ 16

вместе с ответом этой ссылки

fooobar.com/questions/25085/...

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

Ответ 17

Я использовал расширение Visual Studio "Полное переименование проекта" для успешного переименования проектов в решении ASP.NET Core 2.

Затем я использовал ReSharper для настройки пространства имен (щелкните правой кнопкой мыши по проекту, рефактору, настройте пространства имен...)

https://marketplace.visualstudio.com/items?itemName=KuanyshNabiyev.FullRenameProject

введите описание изображения здесь