Мое текущее решение для переименования папки проекта:
- Удалить проект из решения.
- Переименуйте папку вне Visual Studio.
- Повторно добавьте проект к решению.
Есть ли способ лучше?
Мое текущее решение для переименования папки проекта:
Есть ли способ лучше?
Ответы:
Пользователи TFS: если вы используете систему контроля версий, которая требует, чтобы вы предупреждали ее перед переименованием файлов / папок, вместо этого посмотрите на этот ответ, который охватывает дополнительные необходимые шаги.
Чтобы переименовать папку проекта , file ( .*proj
) и отображаемое имя в Visual Studio:
.sln
файл непосредственно в другом редакторе, например Notepad ++, и обновите пути к нему. (Возможно, вам придется сначала проверить решение в TFS и т. Д.)Примечание. Другие предлагаемые решения, включающие удаление и повторное добавление проекта в решение, будут нарушать ссылки на проекты.
Если вы выполните эти шаги, вы можете также переименовать следующее, чтобы соответствовать:
Также рассмотрите возможность изменения значений следующих атрибутов сборки :
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
Есть другой способ сделать это, используя файлы * .sol, * csproj.
Это будет так (относительно файла * .sol):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
И просто измените первую часть на новую директорию, например:
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
Конечно, не забудьте переместить весь проект в этот каталог.
Это просто в Visual Studio 2015 (возможно, работает в более старых версиях)
.sln
файл в Блокноте и измените путь к csproj, т. Е. fu\bar.csproj
→ bar\bar.csproj
.Человек, я боролся с этим. К сожалению, в Visual Studio нет решения одним щелчком, но если вы работаете с Visual Studio 2012 и ваш проект находится под управлением исходного кода с помощью Team Foundation Server , вот как я запустил его, сохранив историю исходного кода:
(Обязательно прочитайте комментарий @ mjv ниже, так как он отмечает, что вы можете пропустить шаги 5-10)
Вышеуказанное руководство работает для меня. Если он не работает для вас, попробуйте полностью удалить локальное решение и удалите сопоставление папок в рабочей области. Перезапустите Visual Studio на всякий случай. Убедитесь, что вы действительно удалили все решение со своего компьютера. Теперь прочитайте сопоставление решения в вашем рабочем пространстве и получите последнюю версию. Теперь попробуйте вышеуказанные шаги. То же самое применимо, если что-то пойдет не так во время выполнения вышеуказанных шагов. Просто удалите свое решение локально и получите последний источник, и у вас будет чистый лист для работы.
Если у вас все еще есть проблемы, убедитесь, что вы ничего не изменили вручную в файле решения, или попробуйте другие «хитрости», прежде чем пытаться выполнить описанные выше шаги. Если вы что-то изменили и отметили это, вы можете рассмотреть возможность отката до того момента, когда вы начали возиться с переименованием проекта.
Конечно, вы также захотите переименовать сам проект в Solution Explorer. Вы можете сделать это до описанных выше шагов, но в этом случае убедитесь, что вы отметили это изменение, прежде чем применять описанные выше шаги. Вы также можете сделать это позже, но сначала убедитесь, что вы выполнили все шаги, описанные выше, и проверьте изменения, прежде чем пытаться переименовать имя проекта в обозревателе решений. Я не рекомендую пытаться смешивать вышеуказанные шаги с переименованием имени проекта в обозревателе решений. Хотя это может сработать, но я бы порекомендовал сделать это в 2 отдельных наборах изменений.
VS2012
! Обратите внимание, что вы можете избежать шагов 5-10 (то есть необходимости возвращать переименованные папки в Source Control), если вместо этого вы закроете решение и затем переименуете папки внутри, VS' Source Control Explorer
а не Windows Explorer
.
Folder already exists
. Поэтому мне пришлось снова переименовать папку, WE
затем изменить ее SCE
, затем скопировать файлы в эту папку, прежде чем она заработала. Так что следуйте комментарию от MJV выше. Я также не задумывался о необходимости менять фактические имена файлов проекта (не только в VS), что я сделал в качестве запоздалой мысли, заставив меня повторить некоторые из этих шагов.
В данный момент нет. Ну, на самом деле вы можете щелкнуть по сломанному узлу проекта и на панели свойств найти свойство «Путь», щелкнуть на небольшом значке обзора и выбрать новый путь.
Вуаля :)
Более простое решение заключается в следующем:
Есть четыре необходимых шага, но семь рекомендуется. В конце дня проект переименован полностью. Технически, имя папки для проекта не должно совпадать с самим проектом, поэтому даже этот шаг не является обязательным, но он может сбить с толку, если они не совпадают. То же самое для имен сборки и пространства имен.
В ответе andersjanmyr проще сначала переименовать проект.
Кроме того, после выполнения этих шагов вы можете переименовать другие ссылки на ваше старое имя проекта.
В свойствах проекта обновите Имя сборки и Пространство имен по умолчанию.
Это обновит следующее в файле проекта ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... и избавится от ошибки "Пространство имен не соответствует расположению файла, должно быть: 'SomeProjectName'"
Переименуйте свое корневое пространство имен (если у вас есть ReSharper, щелкните правой кнопкой мыши пространство имен и выберите Refactor -> Rename).
Измените все вхождения вашего старого имени проекта в AssemblyInfo.cs .
Для Visual Studio 2017 вы можете использовать мое расширение Visual Studio:
Он переименует проект в:
[assembly: InternalsVisibleTo("MyTests")]
. Когда я переименовал MyTests
, он не переименовал эту ссылку. Опять же, я не думаю, что это входит в вашу компетенцию, и это легко решить вручную.
Я просто должен был сделать это сам (с помощью Visual Studio 2010). Как ответили некоторые люди, самый простой шаг выглядит следующим образом:
Для тех, кто использует Visual Studio + Git и хочет сохранить историю файлов (работает с переименованием как проектов, так и / или решений):
Закрыть Visual Studio
В файле .gitignore дублируйте все игнорируемые пути проекта, который вы хотите переименовать, с переименованными версиями этих путей.
Используйте команду Git move как это:
git mv <old_folder_name> <new_folder_name>
Смотрите документацию для дополнительных опций: https://git-scm.com/docs/git-mv
В вашем файле .sln: найдите строку, определяющую ваш проект, и измените имя папки в пути. Линия должна выглядеть примерно так:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
Откройте Visual Studio и щелкните правой кнопкой мыши проект → Переименовать
После этого переименуйте пространства имен.
Я читал, что у ReSharper есть несколько вариантов для этого. Но простой поиск / замена сделал работу за меня.
Удалите старые пути .gitignore.
Смотрите пункт 3 в связанной статье .
Это сработало для меня.
Что сработало для меня в Visual Studio 2017:
Там сказано что-то вроде « повторного добавления проекта ». Я восстановил все, и все было хорошо, чтобы пойти.
Dependencies
>> Add reference
>> >> Выберите новый проект )
Я должен был сделать это много раз. Очень полезно иметь возможность изменять существующий проект, но иметь возможность переименовывать текст в пространствах имен, файлах и папках (включая имена файлов / каталогов).
Использование рекурсивного поиска и замены, начиная с корневой папки, означает, что переименование не нарушает ссылки на проекты в файлах решений и ссылках на проекты.
С этой целью я создал проект, чтобы сделать именно это. Приложение также пытается игнорировать папки контроля версий, такие как .git, .svn и файл настроек .vs. Больше информации в README.
Проверенное решение для расширения Visual Studio для инструментов данных для бизнес-аналитики (SSDT-BI 2013):
Это было проверено на 100% и работало безупречно в моем случае.
ПРИМЕЧАНИЕ: я не могу подтвердить, работает ли он под другими шаблонами проектов и другими версиями Visual Studio. Как всегда, сделайте резервную копию всего заранее.
Я написал небольшой инструмент, который автоматизирует все эти шаги. Он также поддерживает Subversion на данный момент.
Информация о текущих выпусках может быть найдена в Visual Studio Project Renamer Infos .
Последние версии теперь можно загрузить со страницы загрузки Visual Studio Project Renamer .
Обратная связь высоко ценится.
У меня часто возникала одна и та же проблема переименования проекта в 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
Примечание : это исправление для Visual Studio 2008, но оно должно работать здесь.
.sln
файл, расположенный в родительской папке..sln
файле. щелчокYes ..sln
файла совпадает с именем папки. Это не обязательно, но обеспечивает согласованность.)Выполнено.
При использовании TFS, шаг 2 - это переименование папки в системе управления версиями, а затем получение последней версии перед повторным открытием решения.
Недавно мы загрузили бета-версию бесплатного расширения Visual Studio, которое делает это за вас.
Взгляните на Visual Studio Gallery: Галерея Загрузить
Откройте .sln в текстовом редакторе и в следующей строке замените <FolderName> на имя вашей новой папки Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-А103-C19AF869D965}»
После изменения имени папки откройте файл .sln в Блокноте и измените путь на новый.
Подобные проблемы возникают, когда необходимо создать новый проект, и вы хотите, чтобы имя папки проекта отличалось от имени проекта.
Когда вы создаете новый проект, он сохраняется в
./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
Недостатком этого подхода является то, что вам необходимо настроить пространство имен по умолчанию и имя двоичного файла вывода, а также обновить пространства имен во всех файлах, включенных в шаблон проекта.
Я использую Visual Studio 2013 и TFS 2013.
Я сделал это так:
Существует более простой подход, который был протестирован в Visual Studio 2013 Update 1 и применим для проектов, связанных с TFS:
Самый простой способ - перейти к свойству окна, изменить имя пространства имен по умолчанию, а затем переименовать.
Я сделал следующее:
<Создать резервную копию всей папки>
Переименуйте проект из Visual Studio 2013 (необязательно / не требуется).
Экспортируйте проект как шаблон.
Закройте решение.
Откройте решение
Создайте проект из сохраненного шаблона и используйте имя, которое вам нравится.
Удалить из обозревателя решений предыдущий проект.
В этот момент я попытался скомпилировать новое решение, и для этого мне пришлось вручную скопировать некоторые ресурсы и заголовки в новую папку проекта из старой папки проекта. Делайте это, пока он не скомпилируется без ошибок. Теперь этот новый проект спас " файл .exe в предыдущую папку. *
Итак ->
Перейдите в Windows Explorer и вручную скопируйте файл решения из старой папки проекта в новую папку проекта.
Закройте решение и откройте решение из нового проекта.
При необходимости изменил конфигурацию обратно на (x64).
Удалите папку проекта со старым именем из папки решения.