Проект копіювання візуальної студії


141

Я хотів би зробити копію свого проекту. Я б не почав це робити з нуля, додаючи файли та посилання тощо. Зверніть увагу, що я не маю на увазі копію для розгортання. Просто звичайна копія.

Чи є в VS інструмент для цього? Я використовую VS 2008

Відповіді:


144

Якщо ви хочете копію, найшвидший спосіб зробити це було б зберегти проект. Потім зробіть копію всієї справи у Файловій системі. Поверніться у Visual Studio і відкрийте копію. Звідси я, швидше за все, рекомендую перейменувати проект / рішення, щоб у вас не було двох однойменних назв, але це найшвидший спосіб зробити копію.


25
Що ж відбувається з ProjectGUID?
Ларс Корнеліуссен

4
Не забудьте видалити файли svn, якщо у вас є (я це зробив!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek

51
GUID проекту оновлюється VS автоматично, якщо інший проект із тим самим GUID існує в тому самому рішенні.
Себастьян Крисманський

3
Я це намагаюся, але це не перейменовує простори імен додатків. Не те, що я шукав.
Джейсон

3
Керівництво проекту, НЕ АВТОМАТИЧНО оновлене VS у спільноті 2017 версії 15.8.4. Насправді, як це могло бути, якщо ваш AssemblyInfo.cs знаходиться в контролі вихідного коду?
PeterVermont

134

Просто створіть шаблон ;

З вашого проекту обрали: Проект - Експорт шаблону

Майстер дозволить вам визначитись

  • Назва шаблону
  • Опис шаблону
  • Значок
  • Попередній перегляд зображення

Потім він перетягує ваш проект у каталог "Мої експортовані шаблони". Ви також можете зробити свій шаблон доступним під час створення нового проекту.

Коли ви використовуєте шаблон для створення нового проекту, простір імен буде правильним для "your_new_project_name" у кожному файлі, всі посилання правильні, все досконало :)

Ви можете надіслати .zip файл будь-кому, і він повинен скопіювати (не розпаковувати) .zip файл у каталог Templates \ ProjectTemplates, щоб вони також могли використовувати.

Я зробив шаблон ASP.NET MVC з папками, сторінками макета, моделями перегляду тощо, влаштованими так, як мені подобаються.

ПРИМІТКА.
Якщо у вашому проекті є порожня папка, вона НЕ буде додана до шаблону, тому я просто додав порожній клас, відповідний кожній папці, і зразок зображення для папки зображень.


28
ІМО, найкраща відповідь.
fischgeek

14
У VS2017 Експорт шаблону знаходився під пунктом меню верхнього рівня проекту.
Choco

3
Це неймовірно корисно, як я раніше про це не знав? Дякую!
Алдаріон

5
Це має бути обрана відповідь. Дуже легко! Цей процес також повинен був скопіювати його у папку Templates \ ProjectTemplates, просто переконайтесь. Мені довелося перезапустити свою Visual Studio, щоб побачити це в діалоговому вікні створення проекту.
midoriha_senpai

3
Коли прийшов час імпортувати шаблон для створення нового проекту, я не міг зрозуміти, як це зробити. Виявилося, що для знаходження шаблону мені довелося використовувати панель пошуку в діалоговому вікні "Новий проект".
Tawab Wakil

6

Я думаю, якщо це те, що ти часто робиш, є невелика (невільна) утиліта, яка обіцяє зробити це за тебе: я не користувався цим, тому не впевнений, наскільки це добре:

http://www.kinook.com/CopyWiz/

Також є проект CodePlex:

http://clone.codeplex.com/

Я, мабуть, спробую проект codeplex спробувати, і якщо він не працює, я перейменую все вручну і відредагую файл sln.


Додаток codeplex "Clone Solution" працює досить добре. Він копіює та перейменує всі файли рішення та зберігає всі посилання. Єдине, що мені потрібно було зробити, - це повернути його до нового перейменованого файлу проекту після відкриття скопійованого рішення, а потім перейменувати ім’я збірки та корінний простір імен у властивості проекту. Це було набагато простіше, ніж робити все вручну.
Фютемір

4

Копіювати проекти вкрай НЕ МОЖЛИВО, тому що деякі конфігураційні файли, сформовані внутрішньо, як .csproj, .vspscc тощо, можуть (і, ймовірно, будуть) вказувати на посилання, що належать до розташування попередніх рішень та інших шляхів / локацій в системі або TFS. Якщо ви не фахівець з читання цих файлів та виправлення посилань, не намагайтеся копіювати проекти.

Ви можете створити скелетний проект того ж типу, який ви збираєтесь скопіювати, це створить належні файли .csproj, .vspscc . Тепер ви можете скопіювати файли класу, сценарії та інший вміст з попереднього проекту, оскільки вони не впливатимуть. Це забезпечить плавне складання та контроль версій (якщо ви вирішите зацікавитись цим)

Сказавши все це, дозвольте дати вам метод якнайшвидше скопіювати проект:

  1. Перейдіть до проекту, який потрібно скопіювати в провідник рішень та клацніть правою кнопкою миші .
  2. Тепер виберіть " Відкрити папку у Провіднику файлів " (якщо припустити, що рішення вирішено на локальному шляху на диску).
  3. Виберіть проекти, які ви хочете копіювати, як цілі папки (разом з усіма залежностями, bin .vspscc файл, .csproj файл)
  4. Вставте їх у потрібне місце (це може бути ваша папка рішення чи навіть інша папка рішення. Якщо вона знаходиться в тій самій папці рішення, вам потрібно буде перейменувати її, а також .csproj та інші внутрішні файли на нове ім'я ).
  5. Не повертайтеся до Visual Studio, клацніть правою кнопкою миші рішення та додайте> існуючий проект ...
  6. Перегляньте і виберіть файл проекту (файл .csproj) зараз з місця, де ви його розмістили, та виберіть " відкрити "
  7. Цей файл тепер з’являється в провіднику рішень для роботи.

Зараз вам, можливо, доведеться вирішити кілька помилок побудови, ймовірно, з дублюючими / відсутніми посиланнями та іншим матеріалом, але в іншому випадку це так само незаймано в логіці та структурі, як ви очікували.


2
Оновлення: найкраща відповідь станом на 2019 рік - це відповідь, подана нижче від @Shane. Створення шаблонів VS - це ідеальний спосіб клонування проектів без посилань.
Vikram K

3

Я виконую ці кроки і використовую інструмент розробки під назвою Resharper , який до речі дивовижний:

Так,

  1. Скопіюйте існуючу папку проекту до потрібного пункту призначення
  2. Перейдіть до управління джерелом і клацніть правою кнопкою миші просто потрібну кореневу папку та виберіть "Додати елементи в папку ...". Потім з'явиться майстер, який вибирає файли для копіювання (немає необхідності в деяких файлах і майстер керує вами з цієї причини за замовчуванням).
  3. Зміна назви файлу рішення (* .sln)
  4. Змініть назви підпроектів, якщо вони є.
  5. Використовуйте Resharper, щоб змінити назву просторів імен прив'язки (я автоматично виконуватиму брудну роботу з безпекою). Альтернативний спосіб - вручну змінити всі простори імен на нове ім’я.
  6. Те саме дію з назвами методів.
  7. Перевірте властивості рішення, якщо ви хочете змінити.

Це воно. Ти готовий!!!


1

Найкращий спосіб - це створити новий Project з нуля, а потім перейти в папку з файлами проекту, які ви хочете скопіювати (проект, form1, все, крім папок). Перейменуйте файли (крім файлів form1), наприклад: Я скопіював файли Ch4Ex1 у свій проект Ch4Ex2, але спочатку перейменував їх у Ch4Ex2. Скопіюйте та вставте ці файли в Провідник рішень для нового проекту в Visual Studio. Тоді просто перезапишіть файли, і ви повинні бути гарними!

Стара тема, але я сподіваюся, що вона допоможе кожному, хто шукає цю відповідь!


0

У мене є проект, де вихідні файли знаходяться в папці під папкою проекту. Коли я скопіював папку проекту без папки джерела та відкрив скопійований проект, вихідні файли не пропускаються, але знаходяться у старому місці. Я закрив проект, скопіював також папку-джерело та знову відкрив проект. Тепер проект магічно посилається на скопійовані вихідні файли (і новий шлях з'явився на "зберегти як", і зміна файлу збережена в скопійованій версії).

Існує застереження: якщо не старі, а нові папки проекту знаходяться нижче використовуваної папки бібліотеки, згадані вище магічні відкидання також є абсолютним посиланням на бібліотеку і очікують її за тим же відносним шляхом.

Я спробував це з VS Express 2012.


0

Моє рішення дещо інше - комп'ютер, на якому знаходився пакет, помер, і тому я був змушений відтворити його на іншому комп'ютері.

Що я зробив (у VS 2008), це відкрити такі файли у своєму каталозі:

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

Коли я це зробив, спливаюче вікно запитало мене, чи буде файл sln новим рішенням, і коли я натиснув "так", все працювало чудово.


0

Спробувавши вищезгадані рішення та створивши копію для проектів MVC

Для проектів MVC оновіть номери портів у файлі .csproj, ви можете скористатися iis applicationhost.config, щоб перевірити номери портів. Ті ж номери портів спричинить завантаження збірки в IIS.


0

Після відповіді Шейн вище (що чудово працює BTW) ...

Ви можете зіткнутися з низкою жовтих трикутників у списку довідок. Більшість з них можна усунути за допомогою Build->Clean SolutionіBuild->Rebuild Solution .

У мене траплялися деякі посилання на API API, які були трохи більш впертими.

Спроба перевстановити пакет NuGet тієї ж версії не вдалося.
Visual Studio вважає, що у вас його вже встановлено.

Щоб обійти це:
1: Запишіть оригінальну версію.
2: Встановіть наступну вищу версію ... та видаліть її.
3: Встановіть оригінальну версію з кроку №1.


0

Я використовую Visual Studio 2013, де Project> Шаблон експорту не є варіантом. Ось що я використовую для клонування проекту.

З вашого рішення: Файл> Експорт шаблону> виберіть проект, з якого можна зробити шаблон, відзначте шлях збереження

Завантажити та встановити VS 2013 SDK Тут

Створіть новий проект VSIX під розширенням

У діалоговому вікні VSIXManifest виберіть вкладку "Активи"

Заповніть текстове поле "Автор"

Виберіть "Шаблон проекту" для типу та Перейдіть, щоб додати експортований шаблон (збережений на шляху, який ви зазначили на кроці 1)

Збережіть і складіть проект VSIX. Перейдіть у папку ... / bin / Debug проекту VSIX та двічі клацніть, щоб запустити файл .vsix

Запустіть новий екземпляр Visual Studio, і ви повинні побачити свій шаблон під будь-яким типом проекту. Створіть новий проект зі свого шаблону

Вам доведеться знову додати будь-які посилання на dll


0

Найпростіший спосіб зробити це - експортувати проект у вигляді шаблону та зберегти його до місця шаблону за замовчуванням. Потім скопіюйте шаблон у той самий каталог у тому місці, куди ви хочете його перемістити. Після цього відкрийте візуальну студію на новому місці, створіть новий проект, і ви отримаєте запит на пошук шаблону. Шукайте те, що ви назвали шаблон, виберіть його, і ви закінчите!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.