Мое текущее решение для переименования папки проекта:
- Удалите проект из решения.
- Переименуйте папку вне Visual Studio.
- Повторно добавьте проект в решение.
Есть ли способ лучше?
Мое текущее решение для переименования папки проекта:
Есть ли способ лучше?
Пользователи TFS:. Если вы используете систему управления версиями, которая требует, чтобы вы предупреждали ее перед переименованием файлов / папок, посмотрите вместо этого ответа, в котором описаны необходимые дополнительные действия.
Чтобы переименовать папку, файл (.*proj
) и отображаемое имя проекта в Visual Studio:
.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.)Примечание. Другие предлагаемые решения, включающие удаление и повторное добавление проекта в решение, нарушат ссылки на проект.
Если вы выполните эти шаги, вы также можете подумать о переименовании следующего, чтобы оно соответствовало:
Также рассмотрите возможность изменения значений следующих атрибутов сборки:
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
Это просто в Visual Studio 2015 (возможно, работает в более старых версиях)
.sln
файл в Блокноте и измените путь к csproj, т. Е. fu\bar.csproj
bar\bar.csproj
.Есть другой способ сделать это, используя файлы * .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 нет решения в один клик, но если вы используете Visual Studio 2012 и ваш проект находится под контролем источника с помощью Team Foundation Server, вот как я заставил его работать, сохранив при этом исходную историю:
(Убедитесь, что вы прочитали комментарий @ mjv ниже, поскольку он отмечает, что вы можете пропустить шаги 5–10)
Приведенное выше руководство сработало для меня. Если это не сработает для вас, попробуйте полностью удалить локальное решение и удалить сопоставление папок в своей рабочей области. На всякий случай перезапустите Visual Studio. Убедитесь, что вы действительно удалили все решение со своего компьютера. Теперь прочтите сопоставление решения с вашей рабочей областью и получите последнюю версию. Теперь попробуйте описанные выше шаги. То же самое применимо, если при выполнении вышеуказанных шагов что-то пойдет не так. Просто удалите свое решение локально и получите последний исходный код, и у вас будет чистый лист для работы.
Если у вас по-прежнему возникают проблемы, убедитесь, что вы ничего не изменили вручную в файле решения или попробовали другие «уловки», прежде чем пытаться выполнить вышеуказанные шаги. Если вы что-то изменили и отметили это, вы можете подумать о том, чтобы сделать откат до точки, непосредственно перед тем, как вы начали возиться с переименованием проекта.
Конечно, вы также можете переименовать сам проект в обозревателе решений. Вы можете сделать это до описанных выше действий, но в этом случае убедитесь, что вы отметили это изменение, прежде чем применять описанные выше действия. Вы также можете сделать это позже, но сначала убедитесь, что вы выполнили все вышеперечисленные шаги, и проверьте свои изменения, прежде чем пытаться переименовать имя проекта в обозревателе решений. Я не рекомендую смешивать вышеуказанные шаги с переименованием имени проекта в обозревателе решений. Это может сработать, но я бы рекомендовал сделать это в двух отдельных наборах изменений.
VS2012
! Обратите внимание, что вы можете избежать шагов 5-10 (т.е. необходимости вернуть переименованные папки в Source Control), если вместо этого вы закроете решение, а затем переименуете папки в VS' Source Control Explorer
, а не в Windows Explorer
.
- person mjv; 30.07.2013
Folder already exists
. Поэтому мне пришлось снова переименовать папку в WE
, затем изменить ее в SCE
, а затем скопировать файлы в эту папку, прежде чем это сработало. Так что следуйте за комментарием от mjv выше. Я также не думал о необходимости изменять фактические имена файлов проекта (не только в VS), что я сделал в конце концов, заставив меня повторить некоторые из этих шагов.
- person CaptainBli; 28.04.2014
В настоящее время нет. Что ж, на самом деле вы можете щелкнуть сломанный узел проекта и в панели свойств найти свойство «Путь», щелкнуть небольшой значок обзора и выбрать новый путь.
Вуаля :)
Более простое решение следующее:
Необходимо выполнить четыре шага, но рекомендуется семь. В конце концов, проект полностью переименован. Технически имя папки для проекта не обязательно должно совпадать с самим проектом, поэтому даже этот шаг не является обязательным, но может сбивать с толку, если они не совпадают. То же самое для имен сборок и пространств имен.
В ответ andersjanmyr Проще проект сначала переименовать.
Кроме того, после выполнения этих шагов вы можете захотеть переименовать другие ссылки на свое старое имя проекта.
В свойствах проекта обновите имя сборки и пространство имен по умолчанию.
Это обновит следующее в файле проекта ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... и избавится от ошибки "Пространство имен не соответствует расположению файла, должно быть: 'SomeProjectName'"
Переименуйте корневое пространство имен (если у вас есть ReSharper, щелкните правой кнопкой мыши пространство имен и выберите Refactor -> Rename).
Измените все вхождения вашего старого имени проекта в AssemblyInfo.cs.
Для тех, кто использует 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.
Для Visual Studio 2017 вы можете использовать мое расширение Visual Studio:
Он переименует проект в:
[assembly: InternalsVisibleTo("MyTests")]
. Когда я переименовал MyTests
, он не переименовал эту ссылку. Опять же, я не думаю, что это входит в вашу компетенцию, и это легко решить вручную.
- person frostymarvelous; 18.07.2017
Мне просто пришлось сделать это самому (используя Visual Studio 2010). Как ответили некоторые, самый простой шаг, по-видимому, заключается в следующем:
Используя Visual Studio 2019, я выполнил следующие шаги, чтобы изменить имя проекта успешно:
Что сработало для меня в Visual Studio 2017:
Было сказано что-то вроде «повторное добавление проекта». Я все перестроил, и все было хорошо.
Dependencies
›› Add reference
›› Выберите свой новый проект)
- person maxshuty; 04.02.2020
Проверенное решение для расширения Visual Studio для инструментов данных для бизнес-аналитики (SSDT-BI 2013):
Он был протестирован на 100% и в моем случае работал безотказно.
ПРИМЕЧАНИЕ. Я не могу подтвердить, работает ли он с разными шаблонами проектов и другими версиями Visual Studio. Как всегда, заранее сделайте резервную копию всего.
См. пункт 3 в связанном статья.
У меня это сработало.
Мне приходилось делать это много раз. Действительно полезно иметь возможность перепрофилировать существующий проект, но иметь возможность переименовывать текст в пространствах имен, файлах и папках (включая имена файлов / каталогов).
Использование рекурсивного поиска и замены, начиная с корневой папки, означает, что при переименовании не разрываются ссылки на проекты в файлах решений и ссылках на проекты.
С этой целью я создал проект для этого. Приложение также пытается игнорировать папки контроля версий, такие как .git, .svn и файл настроек .vs. Больше информации в README.
https://github.com/garethrbrown/vs-project-rename
Я просто решил эту проблему для себя, написав глобальный инструмент dotnet (который также учитывает git + history).
Установить через dotnet tool install -g ModernRonin.ProjectRenamer
, использовать с renameproject <oldName> <newName>
.
Документация / Занятия / PR на
https://github.com/ModernRonin/ProjectRenamer
Примечание. Это исправление предназначено для Visual Studio 2008, но здесь оно должно работать.
.sln
, расположенный в родительской папке..sln
файле. Нажмите Да..sln
совпадает с именем папки. Это не обязательно, но сохраняет согласованность.)Выполнено.
Я написал небольшой инструмент, который автоматизирует все эти шаги. На данный момент он также поддерживает Subversion.
Информацию о текущих выпусках можно найти на странице Visual Studio Project Renamer Infos em >.
Последние выпуски теперь можно загрузить со страницы загрузки 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
Переименуйте проект в решении и папку проекта
Удалить проект из решения
Добавьте существующий проект в решение (ваш переименованный проект)
Меня устраивает. TFS также будет отслеживать новый проект.
У меня это хорошо сработало в Visual Studio 2019.
Прокомментируйте и исправьте все вышеперечисленное, что не работает.
Так я переименовал свой существующий проект в VS19.
При использовании TFS шаг 2 состоит в том, чтобы фактически переименовать папку в системе управления версиями, а затем получить последнюю версию перед повторным открытием решения.
Недавно мы загрузили бета-версию бесплатного расширения Visual Studio, которое делает это за вас.
Взгляните на галерею Visual Studio: Загрузить галерею
Что ж, я сделал это по-своему
Откройте .sln в текстовом редакторе и в следующей строке измените ‹FolderName> на новое имя папки Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-A103-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 с обновлением 1 и применим для проектов, связанных с TFS:
Самый простой способ - перейти к свойству окна, изменить имя пространств имен по умолчанию, после чего переименование будет выполнено.
Я сделал следующее:
‹Создать резервную копию всей папки>
Переименуйте проект из Visual Studio 2013 (необязательно / не требуется).
Экспортируйте проект как шаблон.
Закройте раствор.
Откройте решение
Создайте проект из сохраненного шаблона и используйте желаемое имя.
Удалите из обозревателя решений предыдущий проект.
На этом этапе я попытался скомпилировать новое решение, и для этого мне пришлось вручную скопировать некоторые ресурсы и заголовки в новую папку проекта из старой папки проекта. Делайте это, пока он не скомпилируется без ошибок. Теперь этот новый проект сохранил файл « .exe» в предыдущей папке. *
So ->
Перейдите в проводник Windows и вручную скопируйте файл решения из папки старого проекта в папку нового проекта.
Закройте решение и откройте решение в новом проекте.
При необходимости изменил конфигурацию обратно на (x64).
Удалите папку проекта со старым именем из папки решения.
Или просто скопируйте все коды, откройте новый проект с желаемым именем и вставьте код. Запустите отладку, а затем удалите предыдущий проект. Выполнено!
У меня это сработало!
Перейдите в файл .sln, щелкните правой кнопкой мыши, откройте с помощью Notepad ++ (или любого другого редактора; Notepad ++ - самый быстрый), найдите путь, измените его.
Я пытался rename
открыть папку в сообществе Visual Studio 2019 и не смог ее найти.
Однако я понял, что while the code is running you can not change the name of the folder
.
Ответ:
rename
.Щелкните правой кнопкой мыши проект Свойства и задайте (имя) необходимое имя.