Visual studio несколько проектов в одном решении
Я новичок в visual studio, и я экспериментирую с некоторыми службами Windows. Я создал два решения, и я хотел бы посмотреть обе сразу. Без необходимости нажимать file - >recent projects для переключения вперед и назад.
В идеале это может произойти в обозревателе решений и просто вложить проекты, но я могу просматривать только одно решение/проект за раз.
есть ли в любом случае для просмотра нескольких решений/проектов в Visual Студия?
Это способ разработки Visual Studio: одно решение, один экземпляр Visual Studio (VS).
помимо переключения между решениями в одном экземпляре VS, вы также можете открыть другой экземпляр VS и открыть другое решение с этим. Рядом с решениями есть, как вы сказали, "проекты". Вы можете иметь несколько проектов в одном решении и, следовательно, просматривать много проектов одновременно.
есть гораздо более простой (но не столь очевидный) способ; щелкните правой кнопкой мыши значок Visual Studio на панели задач, затем щелкните правой кнопкой мыши имя приложения во всплывающем меню, затем нажмите "Открыть". Затем Windows откроет другой экземпляр, в котором вы можете открыть другое решение.
Если у вас есть два отдельных решения, то вы не можете просматривать их одновременно в одном экземпляре VS. Однако вы можете открыть несколько экземпляров VS и tab между ними.
альтернативой было бы импортировать проекты из одного решения в другое, таким образом, помещая все ваши проекты в одно решение. Вы можете сделать это, выполнив следующие действия:
в обозревателе решений выберите решение, в которое требуется импортировать проект. Щелкните правой кнопкой мыши и выберите Добавить - >существующий проект в контекстном меню.
в окне выбора файла найдите файл проекта, который вы хотите импортировать (это закончится .XXproj, где XX-это язык, который вы используете).
вы можете создать новое пустое решение и добавить свои различные проекты.
просто щелкните правой кнопкой мыши значок Visual Studio, а затем выберите "новое окно" на контекстной панели инструментов, которая появляется внизу в Windows 8. Будет запущен новый экземпляр Visual Studio, а затем вы можете открыть свой второй проект.
в одном экземпляре Visual Studio может быть несколько проектов. Цель решения VS-объединить все проекты, с которыми вы хотите работать, в одном месте, поэтому вы не можете иметь несколько решений в одном экземпляре. Вам придется открывать каждое решение отдельно.
на ум приходят два способа.
откройте другое окно visual studio и откройте в нем второе решение.
было бы предпочтительнее добавить существующие проекты в одно решение, просто щелкните правой кнопкой мыши и добавьте существующий проект и перейдите к файлу проекта (csproj). . например C:\Users\User\Documents\Visual студия 2012\проекты\MySqlWindowsFormsApplication1\MySql Windows Forms Project1\MySql Windows Forms Project1.csproj . В этом во-вторых, вы можете захотеть настройка нескольких проектов запуска т. е. для людей с клиент-серверными приложениями или приложениями с зависимостями. . - . Для этого выберите решение, затем GoTo: Project>>Properties>>Startup Project>> выберите несколько проектов запуска и задайте действия для запуска. При отладке будет запущен выбранный в качестве start.
Многопроектные шаблоны используются в качестве контейнера для двух или нескольких проектов. При создании проекта на основе многопроектного шаблона каждый проект в шаблоне добавляется в решение.
Многопроектный шаблон содержит два или несколько шаблонов проектов с корневым шаблоном типа ProjectGroup.
Многопроектные шаблоны ведут себя иначе, чем шаблоны для одного проекта. Они имеют следующие уникальные характеристики:
Отдельным проектам в многопроектном шаблоне невозможно назначить имена, если этот шаблон используется для создания проекта. Вместо этого нужно использовать атрибут ProjectName элемента ProjectTemplateLink в файле VSTEMPLATE, чтобы указать имя для каждого проекта.
Многопроектные шаблоны могут содержать проекты для разных языков, но сам шаблон можно поместить только в одну категорию. Категория шаблона указывается в элементе ProjectType файла VSTEMPLATE.
Многопроектный шаблон должен включать следующие элементы, сжатые в ZIP-файл:
Корневой файл VSTEMPLATE для всего многопроектного шаблона. Этот корневой файл VSTEMPLATE содержит метаданные, отображаемые в диалоговом окне создания проекта. Он также указывает место поиска файлов VSTEMPLATE для проектов в этом шаблоне. Этот файл должен находиться в корне ZIP-файла.
Две или более папок, содержащих файлы, которые нужны для завершения шаблона проекта. К ним относятся все файлы кода для проекта, а также файл VSTEMPLATE.
Например, ZIP-файл многопроектного шаблона с двумя проектами может иметь следующие файлы и каталоги:
- MultiProjectTemplate.vstemplate
- \Project1\MyTemplate.vstemplate
- \Project1\Project1.vbproj
- \Project1\Class.vb
- \Project2\MyTemplate.vstemplate
- \Project2\Project2.vbproj
- \Project2\Class.vb
Корневой файл VSTEMPLATE многопроектного шаблона отличается от однопроектного шаблона следующим образом:
Атрибут Тип элемента VSTemplate имеет значение ProjectGroup вместо Project. Пример:
Элемент TemplateContent содержит элемент ProjectCollection, который имеет один или несколько элементов ProjectTemplateLink, задающих пути к файлам vstemplate включенных проектов. Пример:
Если вам нужно, чтобы в диалоговом окне создания проекта отображался только многопроектный шаблон, а не его отдельные проекты, пометьте внутренние шаблоны как скрытые. Пример:
Создание многопроектного шаблона из существующего решения
Создайте решения и добавьте два или более проектов.
Настройте проекты для экспорта в шаблон.
Если вы используете параметры шаблона и хотите ссылаться на переменные из родительского шаблона, укажите перед именем параметра префикс ext_ . Например, $ext_safeprojectname$ . Кроме того, задайте атрибуту CopyParameters элемента ProjectTemplateLink значение true.
В меню Проект выберите команду Экспорт шаблона.
Открывается мастер экспорта шаблонов.
На странице Выбор типа шаблона выберите Шаблон проекта. Выберите один из проектов, который необходимо экспортировать в шаблон, а затем нажмите кнопку Далее. (Вы будете повторять эти действия для каждого проекта в решении.)
Проект будет экспортирован в ZIP-файл и помещен в указанное выходное расположение.
Каждый проект необходимо отдельно экспортировать в шаблон, поэтому повторите предыдущие шаги для каждого проекта в решении.
Создайте каталог для шаблона, содержащий вложенный каталог для каждого проекта.
Извлеките содержимое ZIP-файла каждого проекта в соответствующий созданный вложенный каталог.
В базовом каталоге создайте XML-файл с расширением VSTEMPLATE. Этот файл содержит метаданные для многопроектного шаблона. Пример структуры файла приведен ниже. Укажите относительный путь к файлу VSTEMPLATE каждого проекта.
Файлы и папки сжимаются в ZIP-файл.
Скопируйте ZIP-файл в пользовательский каталог шаблона проекта. По умолчанию это каталог %USERPROFILE%\Documents\Visual Studio \Templates\ProjectTemplates.
В Visual Studio выберите Файл > Создать > Проект и убедитесь, что шаблон отображается.
Пример для двух проектов
В этом примере показан простой корневой файл VSTEMPLATE, включающий несколько проектов. В этом примере шаблон содержит два проекта: Мое приложение Windows и Моя библиотека классов. Атрибут ProjectName элемента ProjectTemplateLink задает имя, которое назначено проекту.
Если атрибут ProjectName не указан, в качестве имени проекта используется имя файла VSTEMPLATE.
Пример с папками решений
В этом примере используется элемент SolutionFolder для разделения проектов на две группы, Math Classes и Graphics Classes. Шаблон содержит четыре проекта, два из которых размещаются в отдельных папках решения.
Крупные группы разработчиков часто совместно работают в рамках одного большого решения с множеством проектов. При этом отдельные разработчики обычно работают с небольшим подмножеством таких проектов. Для повышения производительности при открытии больших решений в Visual Studio 2019 добавлена возможность фильтрации решений. Фильтры решений позволяют открыть решение с выборочной загрузкой проектов. Загрузка подмножества проектов в решении уменьшает время загрузки, сборки и тестирования решения и позволяет проводить более сфокусированную проверку.
Список доступных возможностей:
Вы можете быстрее перейти к коду, открыв решение без загрузки проектов. Открыв решение, вы можете выбрать, какие проекты следует загрузить.
При повторном открытии решения Visual Studio запоминает, какие проекты были загружены в предыдущем сеансе, и загружает только эти проекты.
Можно создать файл фильтра решений, чтобы сохранить одну или несколько конфигураций загрузки проектов или поделиться ими с другими участниками команды.
Этот раздел относится к Visual Studio в Windows.
Открытие отфильтрованного решения
Решение можно открыть, не загружая его проекты, непосредственно в диалоговом окне Открыть проект или из командной строки.
Диалоговое окно "Открыть проект"
Чтобы открыть решения без загрузки его проектов с помощью диалогового окна Открыть проект, сделайте следующее:
В строке меню выберите Файл > Открыть > Решение или проект.
В диалоговом окне Открыть проект выберите решение, а затем выберите Не загружать проекты.
Выберите команду Открыть.
Решение открывается без загрузки проектов.
В обозревателе решений выберите проекты, которые нужно загрузить (нажмите клавишу CTRL для выбора нескольких проектов), а затем щелкните проект правой кнопкой мыши и выберите пункт Перезагрузить проект.
При следующем локальном открытии решения Visual Studio запоминает, какие проекты загружаются.
Командная строка
(новые возможности в Visual Studio 2019 версии 16.1)
Чтобы открыть решение без загрузки его проектов из командной строки, используйте параметр /donotloadprojects , как показано в следующем примере.
Переключение режима отображения незагруженных проектов
Вы можете настроить отображение всех проектов в решении или только загруженных проектов с помощью одного из следующих вариантов в обозревателе решений.
Щелкните решение правой кнопкой мыши и выберите Показать незагруженные проекты или Скрыть незагруженные проекты.
Загрузка зависимостей проектов
Если загружены только отдельные проекты решения, некоторые зависимости проектов могут не загрузиться. Убедиться в наличии всех зависимостей можно с помощью пункта меню Загрузить зависимости проекта. Щелкните правой кнопкой мыши один или несколько загруженных проектов в обозревателе решений и выберите Загрузить зависимости проекта.
Файлы фильтров решений
Если вы хотите совместно использовать конфигурацию загрузки проектов или зафиксировать ее в системе управления версиями, можно создать файл фильтра решений (он имеет расширение SLNF). При открытии файла фильтра решений решение открывается в Visual Studio с загрузкой указанных проектов (все незагруженные проекты будут скрыты). Вы можете переключать режим просмотра незагруженных проектов.
Файлы фильтров решений визуально отличаются от обычных файлов решений дополнительным воронкообразным глифом на значке рядом с решением в обозревателе решений. Имя фильтра и количество загруженных проектов также отображаются рядом с именем решения.
Если после создания файла фильтра решений в исходное решение добавляются новые проекты, они отображаются как незагруженные проекты в обозревателе решений.
Создание файла фильтра решений
В обозревателе решений щелкните решение правой кнопкой мыши и выберите пункт Сохранить как фильтр решений.
Выберите имя и расположение файла фильтра решений.
После создания фильтра файл решений он добавляется в список Последние проекты и решения для быстрого доступа:
"Последние" в Visual Studio" />
Как создать 2 проекта в одном solution в Visual Studio?
Не открывается файл Visual Studio Solution (.sln) в самом Visual Studio
Доброго дня. Такая проблема. Не открывается файл Visual Studio Solution (.sln) в самом Visual.
Создать инсталлятор проекта Visual Studio 2015/2017
Создал программу в Visual Studio 2017, но она устанавливается только на мой компьютер, на других не.
Visual Studio: solution c несколькими проектами
Добрый вечер! Вопрос от начинающего.. по VS2012 Есть solution, который содержит 2 проекта.
Практическое руководство. Создание многопроектных шаблонов
Многопроектные шаблоны используются в качестве контейнера для двух или нескольких проектов. При создании проекта на основе многопроектного шаблона каждый проект в шаблоне добавляется в решение.
Многопроектный шаблон содержит два или несколько шаблонов проектов с корневым шаблоном типа ProjectGroup.
Многопроектные шаблоны ведут себя иначе, чем шаблоны для одного проекта. Они имеют следующие уникальные характеристики:
Отдельным проектам в многопроектном шаблоне невозможно назначить имена, если этот шаблон используется для создания проекта. Вместо этого нужно использовать атрибут ProjectName элемента ProjectTemplateLink в файле VSTEMPLATE, чтобы указать имя для каждого проекта.
Многопроектные шаблоны могут содержать проекты для разных языков, но сам шаблон можно поместить только в одну категорию. Категория шаблона указывается в элементе ProjectType файла VSTEMPLATE.
Многопроектный шаблон должен включать следующие элементы, сжатые в ZIP-файл:
Корневой файл VSTEMPLATE для всего многопроектного шаблона. Этот корневой файл VSTEMPLATE содержит метаданные, отображаемые в диалоговом окне создания проекта. Он также указывает место поиска файлов VSTEMPLATE для проектов в этом шаблоне. Этот файл должен находиться в корне ZIP-файла.
Две или более папок, содержащих файлы, которые нужны для завершения шаблона проекта. К ним относятся все файлы кода для проекта, а также файл VSTEMPLATE.
Например, ZIP-файл многопроектного шаблона с двумя проектами может иметь следующие файлы и каталоги:
- MultiProjectTemplate.vstemplate
- \Project1\MyTemplate.vstemplate
- \Project1\Project1.vbproj
- \Project1\Class.vb
- \Project2\MyTemplate.vstemplate
- \Project2\Project2.vbproj
- \Project2\Class.vb
Корневой файл VSTEMPLATE многопроектного шаблона отличается от однопроектного шаблона следующим образом:
Атрибут Тип элемента VSTemplate имеет значение ProjectGroup вместо Project. Пример:
Элемент TemplateContent содержит элемент ProjectCollection, который имеет один или несколько элементов ProjectTemplateLink, задающих пути к файлам vstemplate включенных проектов. Пример:
Если вам нужно, чтобы в диалоговом окне создания проекта отображался только многопроектный шаблон, а не его отдельные проекты, пометьте внутренние шаблоны как скрытые. Пример:
Создание многопроектного шаблона из существующего решения
Создайте решения и добавьте два или более проектов.
Настройте проекты для экспорта в шаблон.
Если вы используете параметры шаблона и хотите ссылаться на переменные из родительского шаблона, укажите перед именем параметра префикс ext_ . Например, $ext_safeprojectname$ . Кроме того, задайте атрибуту CopyParameters элемента ProjectTemplateLink значение true.
В меню Проект выберите команду Экспорт шаблона.
Открывается мастер экспорта шаблонов.
На странице Выбор типа шаблона выберите Шаблон проекта. Выберите один из проектов, который необходимо экспортировать в шаблон, а затем нажмите кнопку Далее. (Вы будете повторять эти действия для каждого проекта в решении.)
Проект будет экспортирован в ZIP-файл и помещен в указанное выходное расположение.
Каждый проект необходимо отдельно экспортировать в шаблон, поэтому повторите предыдущие шаги для каждого проекта в решении.
Создайте каталог для шаблона, содержащий вложенный каталог для каждого проекта.
Извлеките содержимое ZIP-файла каждого проекта в соответствующий созданный вложенный каталог.
В базовом каталоге создайте XML-файл с расширением VSTEMPLATE. Этот файл содержит метаданные для многопроектного шаблона. Пример структуры файла приведен ниже. Укажите относительный путь к файлу VSTEMPLATE каждого проекта.
Файлы и папки сжимаются в ZIP-файл.
Скопируйте ZIP-файл в пользовательский каталог шаблона проекта. По умолчанию это каталог %USERPROFILE%\Documents\Visual Studio \Templates\ProjectTemplates.
В Visual Studio выберите Файл > Создать > Проект и убедитесь, что шаблон отображается.
Пример для двух проектов
В этом примере показан простой корневой файл VSTEMPLATE, включающий несколько проектов. В этом примере шаблон содержит два проекта: Мое приложение Windows и Моя библиотека классов. Атрибут ProjectName элемента ProjectTemplateLink задает имя, которое назначено проекту.
Если атрибут ProjectName не указан, в качестве имени проекта используется имя файла VSTEMPLATE.
Пример с папками решений
В этом примере используется элемент SolutionFolder для разделения проектов на две группы, Math Classes и Graphics Classes. Шаблон содержит четыре проекта, два из которых размещаются в отдельных папках решения.
В методичке задание сделать АТД "Дек". Под это задание выделяется несколько лабораторных работ. Во второй лабе надо сделать сам дек. К нему сделать тесты. В третьей лабе в этом деке реализовать интерфейсы IEnumerable и IClonable. К новым методам сделать тесты и т.д.
У меня в Visual Studio в решении есть консольное приложение с классом дека и библиотека классов с тестами к классу дек. (Lab2 и Lab2_Test на скрине). Я хочу 3 лабу сделать в этом же решении, НО доделав сам дек уже в другом консольном приложении и тесты к классу. Т.е. Заходишь в проект Lab2 и там видишь первоначальный класс дек и класс Program, в котором используется класс дек. Заходишь в Lab_Test, а там тесты к классу дек из проекта Lab2. Заходишь в Lab3 а там тот же самый дек, только с реализованными интерфейсами. Заходишь в Lab3_Test, а там те же самые тесты + тесты для методов, реализующих наследуемые интерфейсыю
Я так и сделал, НО: В обозревателе тестов количество тестов удвоилось. Там тесты из Lab2_Test и из Lab3_Test. Я хочу, чтобы в обозревателе тестов выполнялись тесты того проекта, который выделен (в обозревателе решений). Когда я компилирую, то запускается консольное приложение из Lab2. Я хочу, чтобы компилировался тот проект, который выделен (в обозревателе решений).
Такое в Visual Studio вообще можно сделать (без git)? Если можно, то как?
У меня есть два решения, которые имеют общий код, поэтому я хотел бы извлечь его и поделиться им между ними. Кроме того, я хотел бы иметь возможность выпускать эту библиотеку самостоятельно, потому что это может быть полезно другим.
- как лучше всего это сделать с Visual Studio 2008?
- присутствует ли проект в нескольких решениях?
- есть ли у меня отдельное решение для отдельного фрагмента кода?
- решение может зависеть от еще один?
на проект можно ссылаться несколькими решениями.
поместите свою библиотеку или основной код в один проект, а затем ссылаться на этот проект в обоих решениях.
вы можете "связать" файл кода между двумя проектами. Щелкните правой кнопкой мыши проект, выберите Add -> Existing item , а затем нажмите стрелку вниз рядом с :
по моему опыту, связывание проще, чем создание библиотеки. Связанный код приводит к одному исполняемому файлу с одной версией.
вы can включить проект в несколько решений. Я не думаю, что у проекта есть концепция, частью которой он является. Однако другой альтернативой является создание первого решения в известном месте и ссылка на скомпилированные двоичные файлы. У этого есть недостаток, что вам нужно будет немного поработать, если вы хотите ссылаться на разные версии, основанные на том, строите ли вы в конфигурациях выпуска или отладки.
Я не верю, что вы можете сделать одно решение фактически зависит от другого, но вы можете выполнять автоматические сборки в соответствующем порядке с помощью пользовательских скриптов. В основном относитесь к своей общей библиотеке, как если бы это была еще одна зависимость от третьей стороны, такая как NUnit и т. д.
вы можете встроить дикую карту, используя следующий метод (который является способом, которым решение @Andomar сохраняется в.csproj файл)
Если вы хотите скрыть файлы и / или предотвратить расширение wild-card, если вы добавляете или удаляете элемент из папки "виртуальный существующий элемент", например MySisterProject выше.
вы просто создадите отдельный проект библиотеки классов, содержащий общий код. Он не должен быть частью решения, которое его использует. Ссылка на библиотеку классов из любого проекта, который в ней нуждается.
единственный трюк заключается в том, что вам нужно будет использовать ссылку на файл для ссылки на проект, так как он не будет частью решений, которые ссылаются на него. Это означает, что фактическая выходная сборка должна быть размещена в месте, доступ к которому может получить любой, кто создает проект, который ссылается на него. Например, это можно сделать, поместив сборку в общий ресурс.
извлеките общий код в проект библиотеки классов и добавьте этот проект библиотеки классов в свои решения. Затем вы можете добавить ссылку на общий код из других проектов, добавив ссылку на проект библиотеки классов. Преимущество наличия ссылки на проект в отличие от ссылки на двоичный файл/сборку заключается в том, что если вы измените конфигурацию сборки на debug, release, custom и т. д., проект библиотеки общих классов также будет построен на основе этой конфигурации.
вы можете включить один и тот же проект в более чем одно решение, но вы гарантированно столкнетесь с проблемами когда-нибудь в будущем (относительные пути могут стать недействительными, когда вы перемещаете каталоги, например)
после многих лет борьбы с этим, я, наконец, придумал работоспособное решение, но оно требует от Вас использовать Subversion для управления версиями (что не плохо)
на уровне каталога Вашего решения добавьте svn: внешние свойство, указывающее на проекты, которые необходимо включить в решение. Subversion вытащит проект из репозитория и сохранит его в подпапке вашего файла решения. Файл решения может просто использовать относительные пути для ссылки на проект.
Если я найду еще немного времени, я объясню это подробно.
Это хорошая идея, чтобы создать библиотеку классов dll, которые содержат все общие функциональные возможности. Каждое решение может ссылаться на эту dll независимо от других решений.
Infact, вот как наши источники организованы в моей работе (и я верю во многих других местах).
кстати, решение не может явно зависеть от другого решения.
Если вы пытаетесь поделиться кодом между двумя разными типами проектов (т. е.: desktop project и мобильный проект), вы можете посмотреть в общий папку решения. Я должен сделать это для моего текущего проекта, поскольку мобильные и настольные проекты требуют одинаковых классов, которые находятся только в 1 файле. Если вы пройдете этот маршрут, любой из проектов, имеющих файл, может внести в него изменения, и все проекты будут перестроены с учетом этих изменений.
существует очень хороший случай для использования "добавления существующих ссылок на файлы" при повторном использовании кода в проектах, и именно тогда вам нужно ссылаться и поддерживать разные версии зависимых библиотек.
создание нескольких сборок со ссылками на разные внешние сборки нелегко сделать иначе, не дублируя ваш код или не используя трюки с контролем исходного кода.
Я считаю, что проще поддерживать один проект для развития и протестируйте, затем создайте проекты "сборки", используя существующие ссылки на файлы, когда вам нужно создать сборки, ссылающиеся на разные версии этих внешних сборок.
один простой способ включить файл класса одного проекта в другие проекты-это добавить проект в существующее решение, а затем добавить ссылку DLL нового проекта в существующий проект. Наконец, можно использовать методы добавленного класса путем декальринга с помощью директивы в верхней части класса any.
два главных шагов
1-создание библиотеки dll c++
в visual studio
код файла заголовка
эта опция должна быть Динамическая Библиотека(.dll файлы) и создайте решение / проект сейчас.
first_dll.dll файлы файл создается в отладка папка
теперь функция из dll может быть доступна с помощью инструкции ниже в некоторой функции
вы можете разместить внутренний сервер NuGet и совместно использовать общие библиотеки, которые будут совместно использоваться в других проектах внутри и снаружи.
начиная с VisualStudio 2015, Если вы сохраняете весь свой код в одном решении, вы можете поделиться кодом по добавление общего проекта. Затем добавьте ссылку на этот общий проект для каждого проекта, в котором вы хотите использовать код, а также соответствующие директивы using.
теперь вы можете использовать Общий Проект
общий проект-отличный способ совместного использования общего кода в нескольких приложениях, которые мы уже испытали с общим типом проекта в Visual Studio 2013 в рамках разработки универсального приложения Windows 8.1, но с Visual Studio 2015 это автономный новый шаблон проекта; и мы можем использовать его с другими типами приложений, таких как консоль, рабочий стол, телефон, магазин и т. д.. Этот тип проекта чрезвычайно полезен, когда мы хотите поделиться общим кодом, логикой, а также компонентами в нескольких приложениях с одной платформой. Это также позволяет получить доступ к специфичным для платформы API, активам и т. д.
Читайте также: