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

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

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

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

17 ответов


ручное редактирование .файл 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", используя текстовый редактор, как Блокнот.
  7. перезапустите 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.


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

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

    [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 и для решения *.ФСЛ. Вам нужно будет переименовать папки отдельно, используя файловую систему, и вам нужно будет удалить и прочитать проекты, так как у них будут новые имена папок. Однако обратите внимание, что файлы решения и проекта являются соответственно файлами texst и xml. Вы можете написать свою собственную программу, которая анализирует их и переименовывает имена папок, имена файлов и исправляет проект/решение внутренние файлы.


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


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

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

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

Solution Explorer Screenshot

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

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

    пространство имен 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 в свойствах/AssemblyInfo.cs к новому имени, в этом примере от "HelloWorld.ui " to " Section1to5.пользовательский интерфейс." После изменения имени сохраните и закройте Visual Studio.

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

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

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

    Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = " HelloWorld.ui", " HelloWorld.ui\HelloWorld.пользовательский интерфейс.csproj файл", "{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}"

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

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

  2. вы можете заметить, что кнопка "Debug/Run" была заменена на Кнопка "прикрепить". Если это произойдет, просто щелкните правой кнопкой мыши на проекте и выберите опцию "Установить как проект запуска". Кроме того, нажмите Инструменты>настройка>команды>добавить команду>отладка и добавьте кнопку.

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


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

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


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

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


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

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

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


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

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

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

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

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

недостатки

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

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


вы можете:

  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.


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

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

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

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

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

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

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

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

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

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

1 [сборка: AssemblyTitle ("новое имя здесь")] Два [собрание: AssemblyDescription("")] Три [сборка: AssemblyConfiguration("")] Четыре [сборка: AssemblyCompany("")] Пять [сборка: AssemblyProduct ("новое имя здесь")] Шесть [сборка: AssemblyCopyright ("Copyright © 2013")] Семь [сборка: AssemblyTrademark("")] Восемь [собрание: 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. Note1: если вы получаете что-то вроде этого: ошибка компиляции CS0246: не удалось найти тип или имя пространства имен "project2" (отсутствует директива using или ссылка на сборку?)

исходный файл: c:\Users\Username\AppData\Local\Temp\Temporary ASP.NET Файлы\root\78dd917f\d0836ce4\App_Web_index.cshtml по.a8d08dba.b0mwjmih.0.cs

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

  1. Note2: если вы пытаетесь сделать "Сохранить как" в новый именованный проект и сохранить также старый, подумайте о дублировании вашей БД, изменив connectionStrings в интернете.конфигурации, а также повторного запуска миграций, если у вас в проекте.

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

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

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


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

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

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

<AssemblyName>YourNameSpace</AssemblyName>

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


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

затем я использовал ReSharper для настройки пространства имен (щелкните правой кнопкой мыши на project, refactor, adjust namespaces...)

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

enter image description here


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

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

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


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

https://stackoverflow.com/a/19844531/6767365

переименовать эти файлы. Я переименовал свой проект в MvcMovie, и он отлично работает enter image description here