Мое текущее решение для переименования папки проекта:
- Удалите проект из решения.
- Переименуйте папку вне Visual Studio.
- Повторно добавьте проект в решение.
Есть ли лучший способ?
Мое текущее решение для переименования папки проекта:
Есть ли лучший способ?
Пользователи TFS: если вы используете систему контроля версий, которая требует, чтобы вы предупреждали ее перед переименованием файлов/папок, вместо этого посмотрите на этот ответ, который охватывает дополнительные необходимые шаги.
Чтобы переименовать папку проекта, файл (.*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
конечно, не забудьте переместить весь проект в этот каталог
Удачи.
Это прямо в VS 2015 (возможно, работает в более старых версиях)
Main solution > Rename
project (under solution) > Rename
Properties >
перейти к вкладке "Приложение", переименуйте Assembly name
и Default namespace
в соответствие.namespace > Rename...
, чтобы искать и заменять все ссылки на ваше пространство имен во всем проекте.project folder
..sln
файл в блокноте, измените путь к cjproj. т.е. fu\bar.csproj --> bar\bar.csproj
Человек, я боролся с этим. К сожалению, в Visual Studio нет решения одним щелчком мыши, но если вы работаете с Visual Studio 2012 и ваш проект находится под управлением исходного кода с помощью Team Foundation Server, вот как я получил его, сохранив историю исходного кода:
(Обязательно прочитайте комментарий @mjv ниже, так как он отмечает, что вы можете пропустить шаги 5-10)
Вышеуказанное руководство работает для меня. Если он не работает для вас, попробуйте полностью удалить локальное решение и удалите сопоставление папок в рабочей области. Перезапустите Visual Studio на всякий случай. Убедитесь, что вы действительно удалили все решение со своего компьютера. Теперь прочитайте сопоставление решения в вашем рабочем пространстве и получите последнюю версию. Теперь попробуйте вышеуказанные шаги. То же самое применимо, если что-то пойдет не так при выполнении вышеуказанных шагов. Просто удалите свое решение локально и получите последний источник, и у вас будет чистый лист для работы.
Если у вас все еще есть проблемы, убедитесь, что вы ничего не изменили вручную в файле решения, или попробуйте другие "хитрости", прежде чем пытаться выполнить описанные выше шаги. Если вы что-то изменили и отметили это, вы можете рассмотреть возможность отката до того момента, когда вы начали возиться с переименованием проекта.
Конечно, вы также захотите переименовать сам проект в Solution Explorer. Вы можете сделать это до описанных выше шагов, но в этом случае убедитесь, что вы отметили это изменение, прежде чем применять описанные выше шаги. Вы также можете сделать это позже, но сначала убедитесь, что вы выполнили все шаги, описанные выше, и проверьте изменения, прежде чем пытаться переименовать имя проекта в обозревателе решений. Я не рекомендую пытаться смешивать вышеперечисленные шаги с переименованием имени проекта в обозревателе решений. Хотя это может сработать, но я бы порекомендовал сделать это в 2 отдельных наборах изменений.
В настоящее время нет. Ну, на самом деле вы можете щелкнуть сломанный проект node, а в панели свойств найдите свойство "Путь", затем щелкните маленький значок обзора и выберите новый путь.
Voila:)
Более простым решением является следующее:
Есть 4 необходимых шага, но рекомендуется 7. В конце концов, хотя проект полностью переименован. Технически имя папки для проекта не должно совпадать с самим проектом, поэтому даже этот шаг является необязательным, но может быть запутанным, если они не совпадают. То же самое для имен сборки и имен.
В andersjanmyr ответьте на его проще сначала переименовать проект.
Кроме того, после выполнения этих шагов вам может потребоваться переименовать другие ссылки на ваше прежнее название проекта.
В свойствах проекта обновите имя сборки и пространство имен по умолчанию. Это обновит следующее в файле проекта...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... и избавится от ошибки "Пространство имен не соответствует местоположению файла, должно быть:" SomeProjectName ""
Переименуйте корневое пространство имен (если у вас есть resharper, щелкните правой кнопкой мыши пространство имен и перейдите в Refactor → Rename).
Измените все вхождения вашего старого имени проекта в AssemblyInfo.cs
Для VS2017 вы можете использовать мое расширение Visual Studio
Это переименует проект в:
Я просто должен был сделать это сам (используя VS2010). Как некоторые люди ответили, самый простой шаг:
См. пункт 3 в связанной статье.
Это сработало для меня.
Проверенное решение для расширения Visual Studio для инструментов данных для бизнес-аналитики (SSDT-BI 2013):
Протестировано 100% и безупречно работает на моем случае.
ПРИМЕЧАНИЕ. Невозможно подтвердить, работает ли он под разными шаблонами проектов, а также версиями Visual Studio. Как всегда, делайте резервное копирование заранее.
Для тех, кто использует Visual Studio + git и хочет сохранить историю файлов (работает с переименованием как проектов, так и/или решений):
1) Закрыть Visual Studio
2) В файле .gitignore дублируйте все игнорируемые пути проекта, которые вы хотите переименовать, с переименованными версиями этих путей.
3) Используйте команду git move:
git mv <old_folder_name> <new_folder_name>
Смотрите документацию для дополнительных опций: https://git-scm.com/docs/git-mv
4) В вашем файле .sln: найдите строку, определяющую ваш проект, и измените имя папки в пути. Строка должна выглядеть примерно так:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
5) Откройте Visual Studio, щелкните правой кнопкой мыши по проекту → Переименовать
6) После этого переименуйте пространства имен. Я читал, что у Resharper есть несколько вариантов для этого. Но простой поиск/замена сделал работу за меня.
7) Удалить старые пути .gitignore
@andersjanmyr Решение: вы можете нажать Alt + Enter, чтобы открыть страницу свойств для недоступного проекта и установить там свойство "Путь к файлу"; поскольку он недоступен в контекстном меню правой кнопки мыши в недоступном проекте (в VS2008).
Я написал небольшой инструмент, который автоматизирует все эти шаги. Также поддерживает подрывную деятельность.
Информацию о текущих выпусках можно найти здесь Visual Studio Project Renamer Infos
Теперь выпуски Latests теперь можно загрузить с Страница загрузки Visual Studio Project Renamer
Обратная связь очень ценится.
Хотя на этот вопрос уже был дан ответ, я хотел поделиться своим подходом к решению этой проблемы. У меня часто возникала проблема переименования проекта в VS и редактирования имени папки, имени проекта и файла .sln для этого. Я просто написал VBScript, который выполняет все это. Вы должны быть осторожны со строками, которые вы выбираете для замены.
EDIT: вам просто нужно поместить файл .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
Что сработало для меня в 2017 году:
В нем говорилось что-то вроде "повторного добавления проекта", я перестроил все, и все было хорошо.
ПРИМЕЧАНИЕ. Это исправление для Visual Studio 2008, но должно работать здесь.
.sln
, расположенный в родительской папке..sln
. Нажмите "Да"..sln
имеет то же имя, что и папка. Не требуется, но поддерживает согласованность.)DONE.
При использовании TFS шаг 2 - это фактически переименование папки в исходном элементе управления, а затем получение последней информации перед повторным открытием решения.
Недавно мы загрузили бета-версию бесплатного расширения VS, которое делает это для вас. Посмотрите на VS Gallery: Загрузка галереи
Ну, я сделал это по-своему.
Переименуйте проект в решение и папку проекта
Удалить проект из решения
Добавить существующий проект в решение (ваш переименованный проект)
Меня устраивает. TFS также будет отслеживать новый проект.
Откройте .sln в текстовом файле и в следующей строке измените имя новой папки Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\.csproj", "{021CC6B0-8CFB -4194-А103-C19AF869D965}"
Я должен был сделать это много раз. Очень полезно иметь возможность изменять существующий проект, но иметь возможность переименовывать текст в пространствах имен, файлах и папках. Использование рекурсивного поиска и замены, начиная с корневой папки, означает, что переименование не нарушает ссылки на проекты в файлах решений и ссылках на проекты.
Для этого я создал проект, чтобы сделать именно это. Приложение также пытается игнорировать папки управления версиями, такие как .git,.svn и файл настроек .vs. Больше информации в README.
https://github.com/garethrbrown/vs-project-rename
После изменения имени папки откройте файл .sln в блокноте и измените путь к новому пути.
Аналогичные проблемы возникают при создании нового проекта, и вы хотите, чтобы другое имя папки проекта, чем имя проекта.
Когда вы создаете новый проект, он сохраняется в
./path/to/pro/ject/YourProject/YourProject.**proj
Предположим, вы хотели иметь его непосредственно в папке ject
:
./path/to/pro/ject/YourProject.**proj
Мое обходное решение для этого - создать проект с последней частью пути в качестве его имени, чтобы он не создавал дополнительный каталог:
./path/to/pro/ject/ject.**proj
Когда вы теперь переименовываете проект из Visual Studio, вы достигаете цели, не покидая VS:
./path/to/pro/ject/YourProject.**proj
Недостатком этого подхода является то, что вам нужно также настроить пространство имен по умолчанию и имя двоичного файла вывода, а также обновить пространства имен во всех файлах, включенных в шаблон проекта.
Я использую VS 2013 и TFS 2013.
Я сделал это вот так:
Там был более простой подход, который был протестирован в VS 2013 Update 1 и применим для проектов, связанных с TFS:
Самый простой способ - перейти к свойству имени изменения имени пространства имен по умолчанию, после чего переименование выполняется
1-Переименуйте проект за пределы VS. 2-edit your_project_name.sln с текстовым редактором, переименуйте путь к новому пути
Я сделал следующее:
Переименуйте проект из vs2013. (необязательно/не требуется)
Экспортируйте проект в качестве шаблона.
Закройте решение.
Заново откройте решение
Создайте проект из сохраненного шаблона и используйте имя, которое вам нравится.
Удалить из браузера решения предыдущий проект.
В этом пункте я попытался скомпилировать новое решение, и для этого мне пришлось вручную скопировать некоторые ресурсы и заголовки в новую папку проекта из старой папки проекта. Делайте это до тех пор, пока оно не будет компилироваться без ошибок. Теперь этот новый проект сохранил файл ".exe" в предыдущей папке. *
So →
Перейдите в проводник Windows и скопируйте файл решения из старой папки проекта в новую папку проекта.
Закройте решение и откройте решение из нового проекта.
При необходимости измените конфигурацию (x64).
Удалите папку проекта со старым именем из папки решения.