Как я могу переименовать папку проекта из Visual Studio?

689

Мое текущее решение для переименования папки проекта:

  • Удалить проект из решения.
  • Переименуйте папку вне Visual Studio.
  • Повторно добавьте проект к решению.

Есть ли способ лучше?

andersjanmyr
источник
4
Не существует простого способа сделать это одним щелчком мыши. Во всяком случае, не из Visual Studio.
Мэтт Хэнсон
11
Кто-нибудь знает, будет ли Microsoft исправлять это в версии 2010 года?
Видар
29
По-видимому, нет, поскольку прошло 3 года, и мне просто пришлось пройти через процесс Андерсанмыра. :)
sichinumi
4
Запрос функции Visual Studio: visualstudio.uservoice.com/forums/121579-visual-studio/… иди и голосуй!
Тим Абелл
2
Видимо, голосование провалилось, потому что функция все еще не поддерживается в 2018. Сколько гигабайт нужно, чтобы не изменить файл? 17gbs по-видимому. 17.
Иосиф Франциск

Ответы:

748

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


Чтобы переименовать папку проекта , file ( .*proj) и отображаемое имя в Visual Studio:

  • Закройте решение.
  • Переименуйте папку (и) вне Visual Studio. (Переименовать в TFS при использовании контроля версий)
  • Откройте решение, игнорируя предупреждения (ответьте «нет», если вас попросят загрузить проект из системы контроля версий).
  • Пройдите через все недоступные проекты и ...
    • Откройте окно свойств проекта (выделите проект и нажмите Alt+ Enterили F4или щелкните правой кнопкой мыши> свойства).
    • Установите для свойства « Путь к файлу » новое местоположение.
      • Если свойство недоступно для редактирования (как в Visual Studio 2012), откройте .slnфайл непосредственно в другом редакторе, например Notepad ++, и обновите пути к нему. (Возможно, вам придется сначала проверить решение в TFS и т. Д.)
    • Перезагрузите проект - щелкните правой кнопкой мыши> перезагрузить проект.
    • Измените отображаемое имя проекта, выделив его и нажав F2или щелкнув правой кнопкой мыши> переименовать .

Примечание. Другие предлагаемые решения, включающие удаление и повторное добавление проекта в решение, будут нарушать ссылки на проекты.

Если вы выполните эти шаги, вы можете также переименовать следующее, чтобы соответствовать:

  1. сборочный
  2. Default / Root Namespace
  3. Пространство имен существующих файлов (используйте инструменты рефакторинга в Visual Studio или инструмент противоречивых пространств имен ReSharper )

Также рассмотрите возможность изменения значений следующих атрибутов сборки :

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute
Тим Абелл
источник
25
Для тех, кто использует управление исходным кодом, я думаю, вам также нужно переименовать папку в управлении исходным кодом. Для меня вышеуказанные шаги не сделали этого.
Патрик Салапски
10
При использовании TFS, шаг 2 - это переименование папки в системе управления версиями, а затем получение последней версии перед повторным открытием sln.
Эми Паттерсон
3
Свойство File Path становится редактируемым в VS2010 после того, как папка была переименована (и VS не может найти проект)
Джимми
11
Это не сработало для меня в VS 2012; собственность только для чтения. Мне пришлось открыть файл .sln как текст.
Grault
3
Хлоп! Вся эта беда в переименовании папки! Это было проще в MS-DOS!
Кокодоко
98

Есть другой способ сделать это, используя файлы * .sol, * csproj.

  1. Откройте файл вашего решения.
  2. Найдите * .csproj, который вы хотите изменить.
  3. Это будет так (относительно файла * .sol):

    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"

  4. И просто измените первую часть на новую директорию, например:

    Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj

  5. Конечно, не забудьте переместить весь проект в этот каталог.

rabashani
источник
18
Это сработало для меня, а не принятого ответа, который не сработал, потому что свойство FilePath было только для чтения для меня.
TJKjaer
1
спасибо, это очень помогло. Также обязательно измените значения RootNamespace и AssemblyName.
DevDave
@TJKjaer То же самое.
dzenesiz
Это не сработало для меня в VS2019. Выдает предупреждения о несуществующих ссылках проекта и компилирует ошибки о пропущенных пространствах имен и классах в ссылочном проекте.
Джефф Уокер Код Рейнджер
1
Это работает для меня в Visual Studio 2019, с проектами C #. Это довольно простое решение. Для людей, у которых могут возникнуть проблемы при попытке компиляции, я рекомендую полностью перестроить проект, а не только компилировать.
Сильва
95

Это просто в Visual Studio 2015 (возможно, работает в более старых версиях)

  1. В обозревателе решений щелкните правой кнопкой мыши Основное решениеПереименовать.
  2. В обозревателе решений щелкните правой кнопкой мыши проект (под решением) → Переименовать
  3. В обозревателе решений дважды щелкните или щелкните правой кнопкой мыши Свойства → Перейти на вкладку приложения , переименуйте имя сборки и пространство имен по умолчанию для соответствия.
  4. Если вы также хотите переименовать пространство имен, откройте один из ваших файлов классов. Щелкните правой кнопкой мыши пространство имен → Переименовать ... . Это должно найти и заменить все ссылки на ваше пространство имен по всему проекту.
  5. Закройте проект → переименуйте папку проекта .
  6. Отредактируйте .slnфайл в Блокноте и измените путь к csproj, т. Е. fu\bar.csprojbar\bar.csproj.
wired00
источник
3
Вы забыли обновить ссылки на проекты в зависимых проектах (если есть).
Стивен Лиекенс
1
@JohnPeters Насколько я вижу, этот ответ не редактировался. Шаг 5 описывает переименование папки, поэтому выполнение этих шагов действительно также меняет имя физической папки.
Филипп Стратфорд
Не забудьте применить шаг 4 к папке подпроекта (для меня это был единственный шаг, так что шаг 6 работал).
Фелипе Гутьеррес,
54

Человек, я боролся с этим. К сожалению, в Visual Studio нет решения одним щелчком, но если вы работаете с Visual Studio 2012 и ваш проект находится под управлением исходного кода с помощью Team Foundation Server , вот как я запустил его, сохранив историю исходного кода:

(Обязательно прочитайте комментарий @ mjv ниже, так как он отмечает, что вы можете пропустить шаги 5-10)

  1. Убедитесь, что вы отметили все изменения, поэтому у вас нет ожидающих изменений.
  2. Удалите проект из решения, щелкнув правой кнопкой мыши и выбрав Удалить .
  3. Теперь в Windows Explorer переименуйте папку проекта.
  4. Вернитесь в Visual Studio и в Solution Explorer щелкните правой кнопкой мыши решение и выберите Add -> Existing project . Выберите файл проекта для проекта, который вы удалили на шаге 2, который должен находиться в переименованной папке.
  5. Теперь проект вернулся в решение, но проект, похоже, не добавлен в систему контроля версий. Чтобы это исправить, откройте Source Control Explorer.
  6. Найдите папку проекта в Source Control Explorer, которая соответствует папке проекта на вашем диске, которую вы переименовали в шаге 3.
  7. Переименуйте папку в Source Control Explorer, чтобы она имела то же имя, что и папка проекта на диске.
  8. Теперь взгляните на ожидающие изменения. У вас должны быть изменения в файле решения и операция переименования в папке проекта.
  9. Сделайте перестройку и убедитесь, что все компилируется правильно. Если у вас были межпроектные ссылки на проект, который вы переименовали, вам нужно снова добавить их в отдельные проекты, которые ссылались на него.
  10. Вы должны быть все готово сейчас. Иди и проверить все в.

Вышеуказанное руководство работает для меня. Если он не работает для вас, попробуйте полностью удалить локальное решение и удалите сопоставление папок в рабочей области. Перезапустите Visual Studio на всякий случай. Убедитесь, что вы действительно удалили все решение со своего компьютера. Теперь прочитайте сопоставление решения в вашем рабочем пространстве и получите последнюю версию. Теперь попробуйте вышеуказанные шаги. То же самое применимо, если что-то пойдет не так во время выполнения вышеуказанных шагов. Просто удалите свое решение локально и получите последний источник, и у вас будет чистый лист для работы.

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

Конечно, вы также захотите переименовать сам проект в Solution Explorer. Вы можете сделать это до описанных выше шагов, но в этом случае убедитесь, что вы отметили это изменение, прежде чем применять описанные выше шаги. Вы также можете сделать это позже, но сначала убедитесь, что вы выполнили все шаги, описанные выше, и проверьте изменения, прежде чем пытаться переименовать имя проекта в обозревателе решений. Я не рекомендую пытаться смешивать вышеуказанные шаги с переименованием имени проекта в обозревателе решений. Хотя это может сработать, но я бы порекомендовал сделать это в 2 отдельных наборах изменений.

Рене
источник
10
Спасибо за введение процедуры, которая работает в VS2012! Обратите внимание, что вы можете избежать шагов 5-10 (то есть необходимости возвращать переименованные папки в Source Control), если вместо этого вы закроете решение и затем переименуете папки внутри, VS' Source Control Explorerа не Windows Explorer.
mjv
2
Эти шаги были близки , но изменение расположения папки с Windows (WE) до переименования в Source Control Explorer (SCE) вызвали ошибку: Folder already exists. Поэтому мне пришлось снова переименовать папку, WEзатем изменить ее SCE, затем скопировать файлы в эту папку, прежде чем она заработала. Так что следуйте комментарию от MJV выше. Я также не задумывался о необходимости менять фактические имена файлов проекта (не только в VS), что я сделал в качестве запоздалой мысли, заставив меня повторить некоторые из этих шагов.
CaptainBli
Этот подход с комментариями mjv работает в Perforce с правым кликом, опцией Rename / Move.
Сантос
Вы можете избежать взлома ссылок на проекты, см. Stackoverflow.com/a/10853509/10245
Тим Абелл
@TimAbell Вы пробовали эту процедуру в VS2012, и она работала для вас? Прежде чем написать свой ответ, я попробовал это, но у меня это не сработало, потому что путь к проекту в окне «Свойства» всегда был доступен только для чтения. И это не помогло редактировать файл SLN.
Рене
34

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

Вуаля :)

mortenbpost
источник
2
В VS2015 имя свойства «Unloaded Project Properties» - «Путь к файлу», а значение нельзя редактировать и просматривать.
Уильям
29

Более простое решение заключается в следующем:

  1. Щелкните правой кнопкой мыши проект и переименуйте его.
  2. (необязательно) Откройте настройки свойств проекта и измените имя сборки (и, возможно, пространство имен по умолчанию), чтобы использовать новое имя проекта.
  3. (необязательно) Выберите имя пространства имен в исходном файле, щелкните правой кнопкой мыши и выберите Refactor / Rename, чтобы глобально переименовать пространство имен в новое имя проекта.
  4. (необязательно) Откройте файл AssemblyInfo.cs и измените имя сборки для соответствия.
  5. Сохраните и закройте решение.
  6. Используя Windows Explorer, переименуйте папку проекта в новое имя.
  7. Откройте файл SLN в текстовом редакторе, найдите одну ссылку на путь проекта и измените его, чтобы использовать новое имя папки.

Есть четыре необходимых шага, но семь рекомендуется. В конце дня проект переименован полностью. Технически, имя папки для проекта не должно совпадать с самим проектом, поэтому даже этот шаг не является обязательным, но он может сбить с толку, если они не совпадают. То же самое для имен сборки и пространства имен.

Г-н Шафикур Рахман
источник
Альтернативный шаг 7. Откройте файл SLN с помощью VS, проигнорируйте предупреждения (нажмите «ОК»), выберите проект (ы) в обозревателе решений, нажмите F4, обновите путь к файлу. Необязательный шаг 0: щелкните правой кнопкой мыши решение и переименуйте его.
Мартин Шнайдер
7
Невероятно, как трудно Microsoft делает некоторые вещи
Алекс
1
Это сработало для меня в Visual Studio Community 2017. Принятый ответ не сработал (для меня); свойство, которое нужно было изменить, доступно только для чтения и не может быть изменено в диалоге свойств.
codingatty
10

В ответе andersjanmyr проще сначала переименовать проект.

  1. Переименуйте проект.
  2. Закройте решение (сохраните его).
  3. Переименуйте папки вне Visual Studio.
  4. Откройте решение, игнорируя предупреждения.
  5. Просмотрите все недоступные проекты и установите для свойства 'Путь к файлу' новое местоположение файла вашего проекта, то есть someproject.csproj .
  6. Перезагрузите проект.

Кроме того, после выполнения этих шагов вы можете переименовать другие ссылки на ваше старое имя проекта.

В свойствах проекта обновите Имя сборки и Пространство имен по умолчанию.

Это обновит следующее в файле проекта ...

<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>

... и избавится от ошибки "Пространство имен не соответствует расположению файла, должно быть: 'SomeProjectName'"

Переименуйте свое корневое пространство имен (если у вас есть ReSharper, щелкните правой кнопкой мыши пространство имен и выберите Refactor -> Rename).

Измените все вхождения вашего старого имени проекта в AssemblyInfo.cs .

CRice
источник
Опираясь на этот ответ, вы можете вручную отредактировать файл решения, чтобы путь к проекту был вашим новым путем, и избегать предупреждений при открытии решения. Возможно, вы можете нажать Project> Properties> AssemblyInfo, чтобы отредактировать информацию о сборке из VS и избежать редактирования файла AssemblyInfo.cs.
H2ONaCl
8

Для Visual Studio 2017 вы можете использовать мое расширение Visual Studio:

Скачать

Он переименует проект в:

  • Папка расположения проекта
  • Файл решения
  • Ссылки в других проектах
  • Название сборки, информация
  • Пространство имен по умолчанию
Куаныш
источник
классно! устал от всех ручных переименований, которые мне приходилось делать в прошлом. Работает хорошо. Однако не удалось найти ссылку на строку в другом пакете. Не уверен, что это намеренно.
морозно
Спасибо. но я не понял следующее: «ссылка на строку в другом пакете». Вы можете это объяснить?
Куаныш
Итак, у меня есть тестовый проект, и у меня так есть [assembly: InternalsVisibleTo("MyTests")]. Когда я переименовал MyTests, он не переименовал эту ссылку. Опять же, я не думаю, что это входит в вашу компетенцию, и это легко решить вручную.
морозное
1
Это расширение предполагает, что папка в настоящее время имеет то же имя, что и проект (до переименования). Если они различаются, переименование завершается неудачно :( Я также не получил «Переименовать пространства имен». К счастью, я использовал его только на довольно небольших решениях. В остальном, отлично!
savehansson
1
@MassimilianoKraus Я делаю расширение частным из-за последних негативных отзывов без объяснения причин на рынке. простите за это. Я обновил ссылку
Куаныш
6

Я просто должен был сделать это сам (с помощью Visual Studio 2010). Как ответили некоторые люди, самый простой шаг выглядит следующим образом:

  1. Закройте проект Visual Studio.
  2. Откройте файл .sln и переименуйте префикс каталога проекта для каждого вхождения .csproj.
  3. Сохраните файл .sln
  4. Переименуйте фактический каталог папки проекта на вашем жестком диске, чтобы соответствовать вашим изменениям в файле .sln.
  5. Откройте .sln (в Visual Studio) и пересоберите
Джон Им
источник
5

Для тех, кто использует 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.

ivke
источник
4

Смотрите пункт 3 в связанной статье .


  1. Закройте решение и IDE.
  2. В проводнике Windows: измените имя каталога на новое имя.
  3. В проводнике Windows: Откройте файл .sln с помощью текстового редактора.
  4. Измените имя каталога на новое имя и сохраните.
  5. Перезапустите IDE и откройте решение из меню ФайлПоследние файлы. если оно не запускается автоматически.
  6. Нажмите на папку проекта в обозревателе решений и проверьте свойство пути в свойствах внизу. Теперь он будет ссылаться на новую папку проекта.

Это сработало для меня.

Джим Льюис
источник
4

Что сработало для меня в Visual Studio 2017:

  • Близкое решение в Visual Studio
  • Переименуйте каталоги проектов в решении.
    • (нажмите изменения в управлении исходным кодом - Git в моем случае)
  • Отредактируйте файл .sln в текстовом редакторе (за пределами Visual Studio 2017), изменив имя каталога.
  • Повторно открыть решение в Visual Studio

Там сказано что-то вроде « повторного добавления проекта ». Я восстановил все, и все было хорошо, чтобы пойти.

Чарльз Плагер
источник
1
Кроме того, вам может потребоваться удалить старый проект из зависимостей других проектов и повторно добавить недавно переименованный проект в качестве новой зависимости (щелкните правой кнопкой мыши старый проект >> Удалить, затем щелкните правой кнопкой мыши Dependencies>> Add reference>> >> Выберите новый проект )
максшуты
4

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

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

С этой целью я создал проект, чтобы сделать именно это. Приложение также пытается игнорировать папки контроля версий, такие как .git, .svn и файл настроек .vs. Больше информации в README.

https://github.com/garethrbrown/vs-project-rename

пример

gb2d
источник
2
Хорошо сделано! Ваш проект на самом деле является инструментом переименования. Я думаю, что одна вещь действительно отсутствует: вариант соответствия целому слову.
Элиаху Аарон
4

Проверенное решение для расширения Visual Studio для инструментов данных для бизнес-аналитики (SSDT-BI 2013):

  1. Переместите папку Project в новое место (пока ничего не переименовывайте)
  2. В обозревателе решений переименуйте проект / решение.
  3. Закройте (и сохраните) недавно переименованный проект.
  4. Переименуйте папку проекта и файл .sln.
  5. Используйте текстовый редактор и откройте недавно переименованный файл решения проекта (.sln) (я использовал Notepad ++ )
  6. В строке № 6 вы увидите: "Project {fdjfksdjk4387! ...} =" OLDPROJECT "," OLDFOLDER \ OLDPROJECT.rptproj ". Переименуйте все, используя новые имена, использованные в шаге 4. (т.е. ... =" NEWPROJECT " "," NEWFOLDER \ NEWPROJECT.rptproj "...)
  7. Это оно!

Это было проверено на 100% и работало безупречно в моем случае.

ПРИМЕЧАНИЕ: я не могу подтвердить, работает ли он под другими шаблонами проектов и другими версиями Visual Studio. Как всегда, сделайте резервную копию всего заранее.

alejandrob
источник
2

Я написал небольшой инструмент, который автоматизирует все эти шаги. Он также поддерживает Subversion на данный момент.

Информация о текущих выпусках может быть найдена в Visual Studio Project Renamer Infos .

Последние версии теперь можно загрузить со страницы загрузки Visual Studio Project Renamer .

Обратная связь высоко ценится.

Razer
источник
2

У меня часто возникала одна и та же проблема переименования проекта в 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
Valkyrias
источник
1

Примечание : это исправление для Visual Studio 2008, но оно должно работать здесь.

  1. С помощью проводника Windows переименуйте обе папки решений (родительскую и дочернюю) в новое имя решения.
  2. Удалите .slnфайл, расположенный в родительской папке.
  3. В Visual Studio выберите меню ФайлОткрыть проект .
  4. Разверните новую папку, которую вы только что переименовали, и откройте файл .csproj (расположенный в дочерней папке).
  5. Щелкните правой кнопкой мыши имя проекта и переименуйте его в то, что вы хотите. (Имя должно совпадать с именем папки на шаге 1.)
  6. Выберите меню ФайлЗакрыть решение . Диалог спросит, хотите ли вы сохранить изменения в .slnфайле. щелчокYes .
  7. В диалоговом окне « Сохранить файл как » укажите недавно переименованную родительскую папку и нажмите « Сохранить» . (Примечание. Убедитесь, что имя .slnфайла совпадает с именем папки. Это не обязательно, но обеспечивает согласованность.)

Выполнено.

Robo A GoGo
источник
1

При использовании TFS, шаг 2 - это переименование папки в системе управления версиями, а затем получение последней версии перед повторным открытием решения.

Эми Паттерсон
источник
1

Недавно мы загрузили бета-версию бесплатного расширения Visual Studio, которое делает это за вас.

Взгляните на Visual Studio Gallery: Галерея Загрузить

user3652868
источник
1

Ну, я сделал это по-своему

  • Закрыть Visual Studio 2012
  • Переименуйте ваш подкаталог в нужное имя в .sln
  • Удалить файл * .suo
  • Снова откройте решение и исправьте все свойства загруженных проектов, чтобы они соответствовали новому имени подкаталога.
ageroh
источник
1
  1. Переименуйте проект в решение и папку проекта

  2. Удалить проект из решения

  3. Добавить существующий проект в решение (ваш переименованный проект)

Меня устраивает. TFS также будет отслеживать новый проект.

Влад
источник
1

Откройте .sln в текстовом редакторе и в следующей строке замените <FolderName> на имя вашей новой папки Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-А103-C19AF869D965}»

Хасала Сеневиратне
источник
3
Пожалуйста, объясните, почему / как это работает.
Simon.SA
1

Перейдите к файлу .sln, щелкните правой кнопкой мыши, откройте Notepad ++ (или любым другим редактором; Notepad ++ - самый быстрый), найдите путь, измените его.

Зияд
источник
0

После изменения имени папки откройте файл .sln в Блокноте и измените путь на новый.

LastTribunal
источник
0

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

Когда вы создаете новый проект, он сохраняется в

./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

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

Этан
источник
0

Я использую Visual Studio 2013 и TFS 2013.

Я сделал это так:

  1. Откройте Visual Studio, не открывая само решение, и используйте Source Control Explorer для поиска и переименования папок для проектов.
  2. Дважды щелкните файл решения в Source Control Explorer, чтобы открыть решение.
  3. У вас возникает вопрос: «Недавно в это решение были добавлены проекты. Хотите получить их из системы контроля версий?» , и вы выбираете Yes.
  4. Теперь есть папка и структура проекта, но теперь файлы, так что теперь вы получаете последнюю версию из системы контроля версий.
  5. Попробуйте создать и зафиксировать изменения.
Muris
источник
так что нет окна проводника вещей. В конце концов, вы можете удалить все локальные файлы и получить весь (чистый) проект из системы контроля версий.
Мурис
Я только что узнал, что из-за перестановки папок также возможно, что файл решения создает пустую папку, в которой был сохранен какой-то проект. Затем откройте файл решения в блокноте и уменьшите число свойств SccNumberOfProjects на количество созданных пустых каталогов и удалите соответствующие SccProjectUniqueName #, SccProjectName #, SccLocalPath # и другие свойства с таким же #.
Мурис
0

Существует более простой подход, который был протестирован в Visual Studio 2013 Update 1 и применим для проектов, связанных с TFS:

  • Откройте Visual Studio, но пусть решение будет закрыто.
  • Откройте Source Explorer и переименуйте нужную папку (решение будет закрыто для вас, если вы еще не закрыли его в первую очередь).
  • Щелкните правой кнопкой мыши по решению (также из Source Explorer ) и выберите регистрацию.
  • Откройте решение. Вам скажут, что добавлены новые проекты. Принять, чтобы получить изменения.
  • Удалите проект из решения и добавьте его снова, а затем зарегистрируйтесь.
  • Проверьте, что внутренние ссылки в порядке.
Мохамед Эмад
источник
0

Самый простой способ - перейти к свойству окна, изменить имя пространства имен по умолчанию, а затем переименовать.

hjbjh
источник
О каком окне вы говорите? Вы имеете в виду окно свойств проекта?
Питер Мортенсен
0
  1. Переименуйте проект вне Visual Studio.
  2. Отредактируйте your_project_name.sln в текстовом редакторе и переименуйте путь в новый путь.
user1062770
источник
1
Это похоже на текущее решение и немного сложнее.
Чаша
0

Я сделал следующее:

<Создать резервную копию всей папки>

  1. Переименуйте проект из Visual Studio 2013 (необязательно / не требуется).

  2. Экспортируйте проект как шаблон.

  3. Закройте решение.

  4. Откройте решение

  5. Создайте проект из сохраненного шаблона и используйте имя, которое вам нравится.

  6. Удалить из обозревателя решений предыдущий проект.

В этот момент я попытался скомпилировать новое решение, и для этого мне пришлось вручную скопировать некоторые ресурсы и заголовки в новую папку проекта из старой папки проекта. Делайте это, пока он не скомпилируется без ошибок. Теперь этот новый проект спас " файл .exe в предыдущую папку. *

Итак ->

  1. Перейдите в Windows Explorer и вручную скопируйте файл решения из старой папки проекта в новую папку проекта.

  2. Закройте решение и откройте решение из нового проекта.

  3. При необходимости изменил конфигурацию обратно на (x64).

  4. Удалите папку проекта со старым именем из папки решения.

Питер Мортенсен
источник