Visual Studio Копировать проект

150

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

Есть ли в VS инструмент для этого? Я использую VS 2008

сарснейк
источник

Ответы:

150

Если вам нужна копия, самый быстрый способ сделать это - сохранить проект. Затем сделайте копию всего этого в файловой системе. Вернитесь в Visual Studio и откройте копию. Оттуда я, скорее всего, порекомендую переименовать проект / решение, чтобы у вас не было двух с одинаковыми именами, но это самый быстрый способ сделать копию.

Митчел Селлерс
источник
27
Что же тогда происходит с ProjectGUID?
Lars Corneliussen
4
Не забудьте удалить файлы svn, если они у вас есть (я сделал!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek
51
GUID проекта обновляется VS автоматически, если в том же решении существует другой проект с таким же GUID.
Себастьян Крысмански
4
Я пытаюсь это сделать, но он не переименовывает пространства имен приложений. Не то, что я искал.
Джейсон
3
GUID проекта НЕ ОБНОВЛЯЕТСЯ АВТОМАТИЧЕСКИ VS in Community 2017 Версия 15.8.4. На самом деле, как это могло быть, если ваш AssemblyInfo.cs находится в управлении исходным кодом?
PeterVermont
149

Просто создайте шаблон ;

В вашем проекте выберите: Project - Export Template

Мастер позволит вам определить

  • Имя Шаблона
  • Описание шаблона
  • Икона
  • Предварительный просмотр изображения

Затем он архивирует ваш проект в каталог «Мои экспортированные шаблоны». У вас также есть возможность сделать ваш шаблон доступным при создании нового проекта.

Когда вы используете свой шаблон для создания нового проекта, пространство имен будет правильным для 'your_new_project_name' во всех файлах, все ссылки правильные, все идеально :)

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

Я сделал шаблон ASP.NET MVC с папками, страницей макета, моделями просмотра и т.д., расположенными так, как мне нравится.

ПРИМЕЧАНИЕ.
Если в вашем проекте есть пустая папка, она НЕ будет добавлена ​​в шаблон, поэтому я просто добавил пустой класс, соответствующий каждой папке, и образец изображения для папки изображений.

Шейн
источник
29
ИМО, лучший ответ.
fischgeek
14
В VS2017 шаблон экспорта находился в пункте меню верхнего уровня Project.
Choco
3
Это невероятно полезно, как я не знал об этом раньше? Благодарность!
Aldarrion 08
5
Это должен быть выбранный ответ. Очень просто! Этот процесс также должен был скопировать его в вашу папку Templates \ ProjectTemplates, просто убедитесь. Мне пришлось перезапустить Visual Studio, чтобы увидеть это в диалоговом окне создания проекта.
midoriha_senpai
3
Когда пришло время импортировать шаблон для создания нового проекта, я не мог понять, как это сделать. Оказалось, что мне пришлось использовать панель поиска в диалоговом окне «Новый проект», чтобы найти шаблон.
Tawab Wakil
6

Думаю, если это то, что вы делаете часто, есть небольшая (платная) утилита, которая обещает сделать это за вас: я не использовал ее, поэтому не уверен, насколько она хороша:

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

На CodePlex также есть этот проект:

http://clone.codeplex.com/

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

шутка
источник
Приложение codeplex "Solution Clone" работает довольно хорошо. Он копирует и переименовывает все файлы решений и сохраняет все ссылки. Единственное, что мне нужно было сделать, - это перенаправить его на новый переименованный файл проекта после открытия скопированного решения, а затем переименовать имя сборки и корневое пространство имен в свойствах проекта. Однако это было намного проще, чем делать все вручную.
Fütemire
6

Крайне НЕ РЕКОМЕНДУЕТСЯ копировать проекты вообще, потому что некоторые файлы конфигурации сформированы внутри, например .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
4

Я следую этим шагам и использую инструмент разработки под названием Resharper , который, кстати , потрясающий:

Так,

  1. Скопируйте существующую папку проекта в желаемое место назначения.
  2. Перейдите в систему управления версиями и щелкните правой кнопкой мыши нужную корневую папку и выберите «Добавить элементы в папку ...». Затем появится мастер, который выберет файлы для копирования (нет необходимости в некоторых файлах и по умолчанию мастер направляет вас по этой причине).
  3. Измените имя файла решения (* .sln)
  4. Измените названия подпроектов, если они существуют.
  5. Используйте Resharper для изменения имени привязки пространств имен (я автоматически сделаю грязную работу с безопасностью). Альтернативный способ - вручную изменить все пространства имен с новым именем.
  6. То же действие с именами методов.
  7. Проверьте свойства решения, если вы хотите изменить.

Вот и все. Вы готовы!!!

Яннис Гривас
источник
1

На самом деле лучший способ - создать новый проект с нуля, а затем перейти в папку с файлами проекта, которые вы хотите скопировать (проект, форма1, все, кроме папок). Переименуйте файлы (за исключением файлов form1), например: я скопировал файлы Ch4Ex1 в свой проект Ch4Ex2, но сначала переименовал файлы в Ch4Ex2. Скопируйте и вставьте эти файлы в обозреватель решений для нового проекта в Visual Studio. Затем просто перезапишите файлы, и все будет в порядке!

Старая ветка, но я надеюсь, что это поможет всем, кто ищет этот ответ!

Альперон
источник
0

У меня есть проект, в котором исходные файлы находятся в папке под папкой проекта. Когда я скопировал папку проекта без исходной папки и открыл скопированный проект, исходные файлы не отсутствовали, а были найдены в старом месте. Я закрыл проект, скопировал также исходную папку и снова открыл проект. Теперь проект волшебным образом ссылается на скопированные исходные файлы (и новый путь отображается при «сохранить как», и изменение в файле было сохранено в скопированной версии).

Есть предостережение: если старые и новые папки проекта не находятся под папкой используемой библиотеки, вышеупомянутое волшебство отбрасывает также абсолютную ссылку на библиотеку и ожидает ее по тому же относительному пути.

Я пробовал это с VS Express 2012.

Rainald62
источник
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

Следуя приведенному выше ответу Шейна (который отлично работает, кстати)…

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

У меня действительно были ссылки на Google API, которые были немного более упрямыми.

Попытка переустановить пакет NuGet той же версии не сработала.
Visual Studio считает, что он у вас уже установлен.

Чтобы обойти это:
1: Запишите исходную версию.
2: Установите следующую более высокую версию ... затем удалите ее.
3: Установите исходную версию с шага №1.

Крис Катиньяни
источник
0

Я использую Visual Studio 2013, где Project> Export Template не подходит. Вот что я использую для клонирования проекта.

Из вашего решения: Файл> Экспорт шаблона> выберите проект для создания шаблона, обратите внимание на путь для сохранения

Загрузите и установите VS 2013 SDK здесь

Создайте новый проект VSIX в разделе Расширяемость

В диалоговом окне VSIXManifest выберите вкладку Assets

Заполните текстовое поле Автор

Выберите «Шаблон проекта» в поле «Тип» и выберите «Обзор», чтобы добавить экспортированный шаблон (сохраненный по пути, который вы указали на шаге 1).

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

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

Вам придется повторно добавить ссылки на dll.

Смитти-Вербен-Ягер-Мандженсон
источник
0

Самый простой способ сделать это - экспортировать проект как шаблон и сохранить его в местоположении шаблона по умолчанию. Затем скопируйте шаблон в тот же каталог, в то место, куда вы хотите его переместить. После этого откройте Visual Studio в новом месте, создайте новый проект, и вы получите запрос на поиск шаблона. Найдите то, что вы назвали шаблоном, выберите его, и все готово!

Компания Nyla Lauren
источник