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

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

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

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

20 ответов

Решение

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

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

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

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

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

преимущества

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

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

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

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

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

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

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

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

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

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

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

  1. В обозревателе решений щелкните правой кнопкой мыши проект, выберите "Переименовать" и введите новое имя.
  2. В обозревателе решений щелкните правой кнопкой мыши проект и выберите "Свойства". На вкладке "Приложение" измените "Имя сборки" и "Пространство имен по умолчанию".
  3. В главном файле cs (или любых других файлах кода) переименуйте объявление пространства имен, чтобы использовать новое имя. Для этого щелкните правой кнопкой мыши пространство имен и выберите Refactor > Rename, введите новое имя. Например: namespace WindowsFormsApplication1
  4. Измените 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("")]
    
  5. Удалить каталоги bin и obj физически.

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

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

  8. Очистить и восстановить проект.

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

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

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

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

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

Скриншот обозревателя решений

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

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

    пространство имен HelloWorld.ui ----> пространство имен 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. Вы можете заметить, что кнопка "Отладка / Выполнить" была заменена кнопкой "Присоединить". Если это произойдет, просто щелкните правой кнопкой мыши по проекту и выберите "Установить как проект запуска". Либо нажмите Инструменты> Настройка> Команды> Добавить команду> Отладка и добавьте кнопку.

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

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

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

https://github.com/kuanysh-nabiyev/RenameProjectVsExtension

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

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

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

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

преимущества

  • Вы можете сделать так, чтобы каталог в Windows Explorer совпадал с именем проекта в решении.

Недостатки

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

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

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

Отредактируйте любой найденный и перестроенный код или XML-файл, теперь все должно быть в порядке.

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

Я имел хороший успех с CopyWiz.

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

Использование функции "Поиск в файлах" в Notepad++ для меня работало нормально (Ctrl + H, Поиск в файлах).

http://notepad-plus-plus.org/download/v6.2.2.html

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

  1. На всякий случай сделайте резервную копию вашей папки Project, хотя вы не будете к ней прикасаться, но на всякий случай!
  2. Создайте новый проект и сохраните его, используя имя, которое вы хотите для своего "нового" проекта, то есть имя, на которое вы хотите изменить свой "старый" проект.
  3. Построить это. После этого у вас будет проект с тем именем, которое вы хотели, но он вообще ничего не делает, а только открывает окно (в моем случае это приложение Windows Form).
  4. Открыв новый проект, нажмите Project->Add Existing Ítem и с помощью проводника Windows найдите вашу "старую" папку Project и выберите все файлы в...Visual Studio xxx\Projects\oldApp\oldApp
  5. Выберите все файлы (.vb, .resx) и добавьте их в свой "новый" проект (тот, который должен быть уже открыт).
  6. Почти последним шагом было бы открыть файл проекта с помощью решения
    Обозреватель и на 1-й вкладке измените форму запуска по умолчанию на форму, которой она должна быть.
  7. Перестрой все.

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

Вы можете:

  1. нажмите файл-> новый -> создать проект из существующего проекта

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

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

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

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

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

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

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

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

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

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

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

<AssemblyName>YourNameSpace</AssemblyName>

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

Я перешел по ссылке https://gist.github.com/n3dst4/b932117f3453cc6c56be, и мне удалось успешно переименовать все свое решение.

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

Допустим, я хочу переименовать "project1" в "project2". Допустим, физический путь к моему файлу.sln: c:\my\path\project1\project1.sln

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

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

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

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

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

namespace project1

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

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

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

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

  2. Удалить каталоги bin и obj физически.

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

В примере: c: \ my \ path \ project1 \ project1

будет: c:\my\path\project2\project2

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

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

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

  4. нажмите Build -> Build Solution и затем F5 для запуска...

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

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

Затем перейдите в папку "Temporary ASP.NET Files" и удалите все.

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

Вместе с ответом по этой ссылке

/questions/48099839/pravilnyij-sposob-pereimenovaniya-resheniya-i-katalogov-v-visual-studio/48099852#48099852

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

Если после выполнения предложенного решения вам удалось переименовать новое решение (предположим, с www.oldsite.com на www.newsite.com), но по-прежнему использовать старое имя проекта веб-сайта, поскольку у вас есть старый файл «ASP. Net Web Site", затем выполните следующие дополнительные шаги (предположим, от проекта1 к проекту2).

  • установить и старую Visual Studio 2017
  • откройте проект с ним, щелкните правой кнопкой мыши проект -> добавить -> новый проект.
  • Выберите «Установлено» -> «Visual C#» -> «Интернет» -> «Предыдущие версии» -> «Пустой веб-сайт ASP.NET» и назовите его «www.newsite.com».
  • Переместите все файлы и папки из Visual Studio 2017 со старого сайта на новый, пока старый сайт не останется пустым.
  • Щелкните правой кнопкой мыши «www.oldsite.com» и удалите его.

Теперь вы можете сохранить все и снова открыть его с помощью Visual Studio 2022. Все это необходимо только потому, что VS2019/VS2020 не поддерживает создание «старого» веб-сайта ASP.Net, а только редактирование.

Если вы хотите переименовать решение, выполните следующие действия.

  1. Резервное копирование. Во-первых, обязательно всегда создавайте файл резервной копии. Просто скопируйте проект в другой каталог.

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

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

  4. Откройте любой .cs и переименуйте все пространство имен

  5. Измените AssemblyTitle и AssemblyProduct в Properties/AssemblyInfo.cs.

  6. Удалите каталоги bin и obj физически.

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

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

  9. Очищает и перестраивает проект

Подробности... https://learn.microsoft.com/en-us/answers/questions/1028483/rename-solution-and-related-projects-in-a-aspnet-w.html

Чтобы переименовать сайт:

http://www.c-sharpcorner.com/Blogs/46334/rename-website-project-in-visual-studio-2013.aspx

найдите и отредактируйте файл applicationhost.config IISExpress, находящийся здесь: C:\Users{имя пользователя}\Documents\IISExpress\config

Другие вопросы по тегам