Как сделать несколько программ в одном проекте visual studio

Добавил пользователь Евгений Кузнецов
Обновлено: 10.09.2024

Я новичок в 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.

У меня есть пример каталога некоторых программ, который содержит несколько файлов с несколькими main функции. Могу ли я собрать все эти файлы в один проект, скомпилировать их, а затем запустить конкретные, не получая main already defined ошибка? Предположим, я не хочу создавать отдельный проект для каждого файла cpp.

ОБНОВИТЬ

Мне нужно простое решение в один-два клика (если оно существует). Я не хочу распределять файлы по папкам или редактировать содержимое файлов. Например, в Eclipse / Java вы можете щелкнуть правой кнопкой мыши любой файл с помощью main и запустить его. И в одном проекте может быть много основных файлов. Возможно ли это для VisualStudio / CPP?

ОБНОВЛЕНИЕ 2

Я знаю, что C ++ — это не Java, а Visual Studio — это не Eclipse. Мой вопрос об автоматизации некоторых ручных операций.

Решение

Я не работал с OpenCV, но он использует cmake и имеет CMakeLists.txt в каталоге с примерами. Есть некоторые обсуждения о создании примеров с использованием cmake Вот .

Cmake ничего не собирает сам, он генерирует сценарии сборки для целевой платформы и должен иметь возможность создавать файлы решений и проектов, которые можно загружать в Visual Studio.

Другие решения

Положить те main функции в отдельных пространствах имен, а затем определить, какой из них вы хотите запустить, например.

редактировать: В ответ на дополнительную информацию.

C ++ — это не Java, а VS — это не Eclipse :). Естественный способ поддерживать несколько программ одновременно в VS — это поместить несколько проектов (по одному для каждого исполняемого файла или библиотеки) в одно решение. Если вы хотите запустить проект, просто щелкните его правой кнопкой мыши в Solution Explorer , Выбрать Set as Startup Project , а затем нажмите Start кнопку, чтобы запустить его.

Чтобы добавить проект в решение, щелкните правой кнопкой мыши решение и выберите Add | New project. или же Add | Existing project ,

В Visual studio:

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

В Visual Studio вы должны создать один проект на исполняемый файл, который вы хотите создать.

Как открыть несколько проектов / папок в одном экземпляре Visual Studio Code и открыть несколько файлов в одном представлении? Есть ли у него возможность запроса на изменение в будущем?

Обновить

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

Для этого вы используете команду Add folder to Workspace. . Затем VS Code сохраняет эту конфигурацию в новом файле с расширением .code-workspace . Если вы дважды щелкните этот файл, VS Code повторно откроется с обеими папками.

Исходный принятый ответ (устарел)

Это означает, что концепция файлов решений и проектов, таких как .sln и .csproj, не имеет реальной функции в VSCode, за исключением того, что он использует их только для нацеливания и определения того, какой язык поддерживать Intellisense и тому подобное.

Проще говоря, открываемая вами папка - это корень, с которым вы работаете. Но, конечно, ничто не мешает вам открыть несколько окон.

Запускать по одному проекту в одном решении

Вы можете использовать это расширение, известное как Project Manager.

В этом случае проекты сохраняются в файле projects.json, просто сохраните проект и, нажав Shift + Alt + P , вы увидите список всех ваших сохраненных проектов, оттуда вы можете легко переключать свои проекты.

Вы можете создать рабочее пространство и поместить в него папки: Файл> сохранить рабочее пространство как и перетащить ваши папки в сохраненное рабочее пространство

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

Во-первых, создайте папку, назовите ее так, как хотите.

И вы увидите свои папки в том же окне VSCode.

Вы можете открыть до 3 файлов в одном окне, нажав [CTRL] + [^]

Невозможно нормально открыть новый экземпляр Visual Studio Code, и он не работает, если вы откроете новый экземпляр от имени администратора.

Просто поместите свои проекты в ту же папку и просто откройте эту папку в vscode.

Теперь ваши проекты будут выглядеть так:

ГРУППА ПРОЕКТОВ

ПРОЕКТ 1

ПРОЕКТ 2

Перейдите в Файл> Открыть папку , затем выберите несколько папок, которые хотите открыть, и нажмите Выбрать папку .

Вы можете установить расширение Контекстные меню открытых папок для VS Code от Криса Диаса.

Несколько папок в VS

Щелкните -> Файл -> Добавить папку на рабочее место.

enter image description here

Выберите, над каким проектом работать -> Добавить (нажмите)

enter image description here

enter image description here

enter image description here

В Windows можно использовать mklink для создания символических ссылок каталогов на необходимые папки. Затем храните их вместе в папке, и VSCode перечислит их содержимое.

Думаю, это очень похоже на идею @NeilShen.

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

В противном случае вы можете открыть 2 экземпляра кода в качестве другого варианта

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

Команда File > Add Folder to Workspace вызывает диалоговое окно "Открыть папку" для выбора новой папки.

enter image description here

Если вы используете unix-подобную ОС, вы можете создать мягкую ссылку на вашу целевую папку.

Например. Я хочу видеть исходный код golang, пока использую VSCode. Итак, я создаю мягкую ссылку на go/src в папке моего проекта.

Надеюсь это поможет!

Это был наш запрос на функцию №1 - это было давно, но теперь оно здесь.

Полная документация находится здесь.

Вы можете работать с несколькими папками проекта в Visual Studio Code с несколькими корневыми рабочими пространствами. Это может быть очень полезно, когда вы работаете над несколькими связанными проектами одновременно. Например, у вас может быть репозиторий с документацией по продукту, которую вы хотите поддерживать в актуальном состоянии при обновлении исходного кода продукта.

Оригинальный ответ

В настоящее время инсайдерский канал VSCode дает нам это прямо из коробки.

Multi root workspace in vscode

Дополнительные сведения см. В записи блога.

Не уверен, почему не упоминается самое простое решение. Вы можете просто сделать File>New Window и открыть другой проект в новом окне.

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

  • каков наилучший способ сделать это с Visual Studio 2008?
  • присутствует ли проект в более чем одном решении?
  • есть ли у меня отдельное решение для отдельного фрагмента кода?
  • решение может зависеть от еще один?

на проект может ссылаться несколько решений.

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

Screengrab

вы можете "связать" файл кода между двумя проектами. Щелкните правой кнопкой мыши проект, выберите Add -> Existing item , а затем щелкните стрелку вниз рядом с :

по моему опыту связывание проще, чем создание библиотеки. Связанный код приводит к одному исполняемому файлу с одной версией.

вы can включить проект в несколько решений. Я не думаю, что у проекта есть концепция, частью которой он является. Однако другой альтернативой является создание первого решения в известном месте и ссылка на скомпилированные двоичные файлы. Это имеет тот недостаток, что вам нужно будет немного поработать, если вы хотите ссылаться на разные версии в зависимости от того, создаете ли вы конфигурации выпуска или отладки.

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

вы можете встроить wild-card, используя следующий метод (который является способом, которым решение @Andomar сохраняется в .csproj)

положить в:

Если вы хотите скрыть файлы и / или предотвратить расширение wild-card include, если вы добавляете или удаляете элемент из папки "виртуальный существующий элемент", например MySisterProject выше.

вы просто создадите отдельный проект библиотеки классов, содержащий общий код. Он не должен быть частью любого решения, которое использует его. Ссылка на библиотеку классов из любого проекта, который в ней нуждается.

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

извлеките общий код в проект библиотеки классов и добавьте этот проект библиотеки классов в свои решения. Затем вы можете добавить ссылку на общий код из других проектов, добавив ссылку на проект библиотеки классов. Преимущество наличия ссылки на проект в отличие от ссылки на двоичный файл/сборку заключается в том, что если вы измените конфигурацию сборки на debug, release, custom и т. д., проект общей библиотеки классов также будет построен на основе этой конфигурации.

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

после многих лет борьбы с этим, я, наконец, придумал работоспособное решение, но оно требует, чтобы вы использовали Subversion для управления версиями (что не так уж плохо)

на уровне каталога Вашего решения добавьте svn: externals свойство, указывающее на проекты, которые вы хотите включить в свое решение. Subversion вытащит проект из репозитория и сохранит его в подпапке вашего файла решения. Ваш файл решения может просто использовать относительные пути для ссылки на ваш проект.

Если я найду еще немного времени, я объясню это подробно.

Это хорошая идея, чтобы создать библиотеку классов dll, которые содержат все общие функциональные возможности. Каждое решение может ссылаться на эту dll независимо от других решений.

на самом деле, это то, как наши источники организованы в моей работе (и я верю во многих других местах).

кстати, решение не может явно зависеть от другого решения.

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

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

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

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

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

вы можете разместить внутренний сервер NuGet и совместно использовать общие библиотеки, которые будут совместно использоваться в других проектах внутри и снаружи.

далее читать

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

enter image description here

теперь вы можете использовать Общий Проект

общий проект-отличный способ совместного использования общего кода в нескольких приложениях, которые мы уже испытали с общим типом проекта в Visual Studio 2013 в рамках разработки универсального приложения Windows 8.1, но с Visual Studio 2015 это автономный новый шаблон проекта; и мы можем использовать его с другими типами приложений, такими как консоль, рабочий стол, телефон, приложение для магазина и т. д.. Этот тип проекта чрезвычайно полезен, когда мы хотите совместно использовать общий код, логику, а также компоненты в нескольких приложениях с одной платформой. Это также позволяет получить доступ к специфичным для платформы API, активам и т. д.

более подробная информация этой

Читайте также: