Моє поточне рішення для перейменування папки проекту:
- Видаліть проект із рішення.
- Перейменуйте папку поза Visual Studio.
- Повторно додайте проект до рішення.
Чи є кращий спосіб?
Моє поточне рішення для перейменування папки проекту:
Чи є кращий спосіб?
Відповіді:
Користувачі TFS: Якщо ви використовуєте джерело управління, яке вимагає попередження про це перед тим, як перейменувати файли / папки, то подивіться на цю відповідь, а не на додаткові кроки, необхідні.
Для перейменування папки , файлу ( .*proj
) та відображуваного імені проекту у Visual Studio:
.sln
файл безпосередньо в іншому редакторі, такому як « Блокнот ++» та замість нього оновіть шляхи. (Можливо, вам доведеться спочатку перевірити рішення у 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 на всякий випадок. Переконайтесь, що ви фактично видалили все рішення з комп'ютера. Тепер прочитайте відображення рішення на робочому просторі та отримайте останню версію. Тепер спробуйте описані вище кроки. Це ж стосується, якщо щось піде не так, дотримуючись вищезазначених кроків. Просто видаліть своє місцеве рішення та отримайте останнє джерело, і у вас буде чистий аркуш, з яким ви зможете працювати.
Якщо у вас все ще виникають проблеми, переконайтеся, що ви нічого не змінили вручну у файлі рішення, або спробуйте інші "хитрощі", перш ніж спробувати вищезазначені дії. Якщо ви щось змінили і зареєстрували, можливо, вам варто подумати про те, щоб зробити відкат до того моменту, перш ніж ви почнете возитися з перейменуванням проекту.
Звичайно, ви також хочете перейменувати сам проект у Провідник рішень. Це можна зробити перед описаними вище кроками, але в цьому випадку переконайтеся, що ви змінилися, перш ніж застосовувати вищезазначені дії. Ви також можете зробити це згодом, але переконайтесь, що спочатку виконайте всі кроки вище та перевірте зміни, перш ніж намагатися перейменувати ім'я проекту в Провідник рішень. Я не рекомендую намагатися змішувати вищезазначені етапи з перейменуванням імені проекту в Провідник рішень. Це може працювати, але я б рекомендував це робити у двох окремих наборах змін.
VS2012
! Зауважте, що ви можете уникнути кроків 5-10 (тобто, щоб повернути перейменовані папки в "Source Control"), якщо замість цього ви закриєте рішення, а потім перейменовуєте папки, VS' Source Control Explorer
а не замість них Windows Explorer
.
Folder already exists
. Тож мені довелося знову перейменувати папку, WE
потім змінити її SCE
, а потім скопіювати файли у цю папку, перш ніж вона працювала. Тож слідкуйте за коментарем mjv вище. Я також не замислювався над необхідністю змінити фактичні назви файлів проекту (не лише у VS), що я зробив заздалегідь, змусивши повторити деякі з цих кроків.
Наразі ні. Ну, насправді ви можете натиснути зламаний вузол проекту та на панелі властивостей шукати властивість "Шлях", клацнути піктограму невеликого перегляду та вибрати новий шлях.
Вуаля :)
Найпростішим рішенням є наступне:
Існує чотири необхідні кроки, але сім рекомендованих. Наприкінці дня, хоча проект повністю перейменований. Технічно ім'я папки для проекту не повинно відповідати самому проекту, тому навіть цей крок не є обов'язковим, але він може бути заплутаним, якщо вони не збігаються. Те саме для імен збірки та простору імен.
У відповідь Андерсянмира простіше перейменувати проект спочатку.
Крім того, після виконання цих кроків ви можете перейменувати інші посилання на ваше старе ім'я проекту.
У властивостях проекту оновіть ім'я складання та простір імен за замовчуванням.
Це оновить наступне у файлі проекту ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... і позбудеться помилки "Простір імен не відповідає розташуванню файлу, має бути:" SomeProjectName ""
Перейменуйте кореневу область імен (якщо у вас ReSharper правою кнопкою миші клацніть простір імен та перейдіть Refactor -> Перейменувати).
Змініть всі зустрічі вашої старої назви проекту у 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. Більше інформації можна прочитати в ГОТОВІ.
Перевірене рішення для розширення 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: Завантажити галерею
Відкрийте .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 Update 1 та застосований для проектів, пов’язаних із TFS:
Найпростіший спосіб - перейти до властивості вікна, змінити ім'я просторів імен за замовчуванням, після чого буде виконано перейменування.
Я зробив наступне:
<Створіть резервну копію всієї папки>
Перейменуйте проект із Visual Studio 2013 (необов’язково / не потрібно).
Експортуйте проект як шаблон.
Закрийте рішення.
Повторно відкрийте рішення
Створіть проект із збереженого шаблону та використовуйте ім’я, яке вам подобається.
Видаліть із провідника рішень попередній проект.
У цей момент я спробував скласти нове рішення, і для цього мені довелося вручну скопіювати деякі ресурси та заголовки в нову папку проекту зі старої папки проекту. Робіть це до тих пір, поки воно не складеться без помилок. Тепер цей новий проект зберег файл " .exe" у попередній папці. *
Отже ->
Перейдіть до Провідника Windows і скопіюйте вручну файл рішення зі старої папки проекту в нову папку проекту.
Закрийте рішення та відкрийте рішення в рамках нового проекту.
Якщо потрібно, змінив конфігурацію на (x64).
Видаліть папку проекту зі старим іменем із папки рішення.