Как открыть другой проект в visual studio
packages.config и PackageReference
Прежде чем перейти к рассмотрению каждого инструмента для управления пакетами, сделаем небольшое отступление. Видимо так исторически сложилось, что существует два формата хранения информации об установленных пакетах.
Package Manager UI и Package Manager Console
nuget.exe
Установка пакетов для заданного проекта
1. В папке проекта (где лежит файл *.csproj) создайте файл packages.config и добавьте в него информацию о необходимых пакетах. Вот пример такого файла:
<packages >
<package id = "AForge" version = "2.2.5" targetFramework = "net46" />
<package id = "AForge.Imaging" version = "2.2.5" targetFramework = "net46" />
<package id = "AForge.Math" version = "2.2.5" targetFramework = "net46" />
</packages >
2. Далее в командной строке (обычной cmd.exe) запускаем nuget. При этом в аргументах командной строки обязательно надо указать путь к файлу packages.config и путь к папке, в которую будут установлены пакеты (обычно это папка packages, которая лежит в папке решения):
SolutionDir\ProjectDir> nuget install packages.config -OutputDirectory SolutionDir\packagesВосстановление пакетов для всего решения
Переходим в корневую папку решения и вызываем:
Когда нужно восстановить пакеты, nuget.exe ищет в папках проектов файлы packages.config и считывает из них информацию о том, какие именно пакеты надо установить.
dotnet.exe
Установка пакетов для заданного проекта
SolutionDir\ProjectDir> dotnet add package <PACKAGE_NAME> --package-directory <PACKAGE_DIRECTORY>Восстановление пакетов для всего решения
SolutionDir> dotnet restore --packages <PACKAGES_DIRECTORY>PowerShell PackageManagement
The commands listed here are specific to the Package Manager Console in Visual Studio, and differ from the Package Management module commands that are available in a general PowerShell environment.
И не видим ничего. А делать надо так:
Ага, есть такой пакет, называется Extended.Wpf.Toolkit. Теперь я его устанавливаю:
Естественно, никакие ссылки в проект не добавляются (т. е. в этом смысле PowerShell PackageManagement работает аналогично nuget.exe).
А теперь я хочу посмотреть список установленных пакетов:
Name Version Source ProviderName
---- ------- ------ ------------
Extended.Wpf.Toolkit 3.5.0 SolutionDir\Extended.Wpf.Toolkit. NuGet
Переход с Nuget на Paket
При безусловных преимуществах, которые дает использование Nuget, есть и некоторые мелкие неудобства. Нас с коллегами например напрягало, что при установке (или восстановлении) пакета средствами Visual Studio в проект всегда добавляются ссылки на сборки пакета с установленным свойством Copy Local = True, т. е. они будут копироваться в выходную папку проекта, а нас такое поведение не устраивало по некоторым причинам.
1. Вам придется создать в корне вашего решения папку .paket, а поскольку имя папки начинается с точки, вы сможете сделать это только из командной строки:
2. Есть еще одна инструкция по установке, которая говорит: скачав файл paket.bootstrapper.exe в папку .paket, переименуйте его в paket.exe и закоммитьте (игнорировать его при помощи файла .gitignore, не надо). Зачем все это надо, написано в описании файла paket.bootstrapper.exe.
3. Для удобства пользования утилитой packet.exe существует расширение для Visual Studio под названием Paket for Visual Studio, которое обеспечивает некие плюшки, в частности подсветку синтаксиса и InteliSense для файлов paket.dependencies и paket.references. Но это расширение не устанавливается для Visual Studio 2019.
Установив paket.exe, подготавливаем наше решение (имеется в виду Visual Studio solution). Создаем в папке решения файл paket.dependencies. В нем перечисляются все пакеты для всех проектов решения, обычно, с указанием версий. Для одного из моих решений файл выглядит так:
// paket.dependencies file for paket package manager utility
// restrict target framework
framework: >= net46
// don't copy referenced assemblies to project's output directory
copy_local: false
// NuGet packages
nuget Accord 3.8.0
nuget Accord.Imaging 3.8.0
nuget Accord.MachineLearning 3.8.0
nuget Accord.Math 3.8.0
nuget Accord.Statistics 3.8.0
nuget Accord.Video 3.8.0
nuget Accord.Vision 3.8.0
nuget AForge 2.2.5
nuget AForge.Imaging 2.2.5
nuget AForge.Math 2.2.5
nuget AForge.Video 2.2.5
nuget AForge.Video.DirectShow 2.2.5
nuget AvalonEdit 5.0.4
nuget Extended.Wpf.Toolkit 2.5
nuget Mantin.Controls.Wpf.Notification 3.2.0.0
nuget MessagingToolkit.QRCode 1.3.0
nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform 2.0.1
nuget Ookii.Dialogs.Wpf 1.0.0
nuget System.ValueTuple 4.5.0
nuget System.Windows.Interactivity.WPF 2.0.20525
После того как файл paket.dependencies создан, можно попросить paket закачать пакеты:
Команда paket.exe install генерирует в папке решения файл paket.lock, который описывает какой пакет от какого пакета зависит. У меня он выглядит так:
Microsoft.CodeDom.Providers.DotNetCompilerPlatformSystem.ValueTuple
Если теперь запустить paket.exe install, то нужные пакеты не только загрузятся в папку packages (если они уже не загружены), но и в файл проекта (.csproj) добавятся ссылки на сборки из этих пакетов. Я уже писал выше, что для меня было важно в ссылках на сборки контролировать параметр Copy Local и делать его равным False. В paket это достигается строчкой copy_local: false в файле paket.dependencies.
Вот собственно и весь процесс использования paket. Последнее, что нужно сказать: если вы в своем решении уже пользовались NuGet, и переходите на paket, то утилита paket может выполнить этот переход полностью автоматически (т. е. вам не придется делать все, что было описано выше, нужно будет только скачать paket.exe):
Создание проектов и решений без Visual Studio
Создание файлов проектов и решений вручную
<ItemGroup >
<!-- Input to the tasks (see below) -->
<OutputFiles Include = "$(OutputPath)*.dll" />
</ItemGroup >
<!-- Target -->
<Target Name = "PostBuild" AfterTargets = "Build" >
<!-- Task -->
<Exec Command = "echo POSTBUILD COPYING OUTPUT FILES" />
<!-- Task -->
<Copy SourceFiles = "@(OutputFiles)"
DestinationFolder = "$(DistributionFolder)" />
</Target >
</Project >
Во фрагменте файла проекта (.csproj) даны комментарии по терминологии (в MSBuild ключевую роль играют понятия: Target, Task, Property и Item). По принципам своей работы MSBuild очень похожа на утилиту make.
Небольшое отступление. Если речь не идет о создании нового файла проекта (.csproj), а лишь об изменении имеющегося, то даже необязательно редактировать файл проекта. Те изменения, которые вы планируете внести в файл проекта можно вынести в отдельные два файла Directory.Build.props и Directory.Build.targets, которые утилита MSBuild сама ищет в папке проекта и выше нее и импортирует в проект. Подробнее об этом читайте в статье Customize your build.
Утилита dotnet.exe
dotnet new sln -n MySolutiondotnet new classlib -n MyProject
dotnet sln MySolution.sln add MyProject/MyProject.csproj
dotnet build
Утилита CMake
Программная генерация файлов проектов и решений
Резюме
Сборка решения
MSBuild
SolutionDir> MSBuild.exe -property:Configuration=ReleaseЧтобы программа MSBuild успешно запустилась из командной строки, вам нужно либо добавить путь к папке, где лежит msbuild.exe в переменную окружения PATH (у меня это C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin ), либо запускать командную строку Visual Studio Command Prompt либо указывать полный путь к файлу MSBuild.exe.
Build Systems (автоматизация сборки решения)
- Очистка решения и ⁄ или дистрибутива
- Установка ⁄ восстановление ⁄ обновление пакетов
- Построение проектов
- Формирование дистрибутива (копирование всяких файлов в папку дистрибутива)
В итоге остановились на системе Nuke.
Установка Nuke на компьютер:
Установка Nuke в решение Visual Studio:
Далее у меня состоялся с утилитой следующий диалог:
How should the build project be named?┐ nuke_build_project
Where should the build project be located?
┐ nuke_build_project
Which NUKE version should be used?
┐ 0.20.1 (latest release)
Which solution should be the default?
┐ MySuperBigSolution.sln
Do you need help getting started with a basic build?
┐ Yes, get me started!
Restore, compile, pack using .
┐ Neither
Source files are located in .
┐ ./src
Move packages to .
┐ Neither
Where do test projects go?
┐ ./tests
Do you use GitVersion?
┐ Yes, just not setup yet
Creating directory 'SolutionDir\nuke_build_project'.
Creating directory 'SolutionDir\tests'.
Пример очень простого кода Build.cs:
AbsolutePath SourceDirectory => RootDirectory / "src" ;
Итак, у нас есть проект программы, которая выполняет сборку решения. Теперь чтобы запустить процесс сборки решения, надо выполнить в командной строке powershell скрипт build.ps1:
SolutionDir> .\build.ps1 -target compile -configuration releaseРасширения для Visual Studio
Command Task Runner
Вот пример файла commands.json с двумя задачами (BuildRelease и Clean), которые выполняются путем запуска скрипта build.ps1 (скрипт PowerShell, который появился при установке Nuke):
NUKE Support
Как пользоваться VS Code
Command Palette
Отладка в VS Code
В VS Code почему-то можно отлаживать только 64-разрядные программы, поэтому вам придется специально построить 64-разрядную версию своей программы. Для этого при компиляции вы должны передать утилите MSBuild параметр командной строки /p:Prefer32Bit=False . Если мы запускаем MSBuild из проекта nuke, то можно добавить такую tagret в исходный код проекта nuke:
Благодарности
В наше время open source проекты все популярнее. На площадках открытых проектов, например, на github можно найти множество полезных программ, но они не всегда имеют исполняемые файлы ("exe"), поэтому я постараюсь рассказать о том, как можно собрать самостоятельно C/C++ программу, из исходников, написанную на Microsoft Visual Studio.
Первым делом нам необходимо загрузить онлайн установщик Microsoft Visual Studio, с официального сайта. Для компиляции С/С++ проектов нет необходимости во всех пакетах и можно выбрать только те, которые нам необходимы.
Установщик загрузит необходимые пакеты из интернета и установит их.
После установки Visual Studio можно убедиться, что всё работает создав тестовый проект и скомпилировав его. Для этого нажмите в меню "Файл" → "Создать" → "Проект. "
После чего появится диалог выбора типа проекта, где можно выбрать:
- Консольное приложение;
- Классическое приложение;
- Библиотеку динамической компоновки (dll);
- Статическую библиотеку;
В нашем случае для быстрой проверки подойдет консольное приложение, выбираем название и папку проекта , после чего жмём кнопку "ОК" и создается наша программа.
После этого остается остается лишь скомпилировать её, для этого нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".
Далее наш проект скомпилируется и в папке проекта появится наш тестовый исполняемый файл ("exe").
Если всё работает как надо, то можно приступать к сборке какого-нибудь другого открытого проекта с github или другого хостинга проектов.
Первым делом нам нужно загрузить исходники проекта. На площадке github это делается довольно просто, жмем на кнопку "Code" и "Download ZIP". После чего нужно распаковать его и можно приступать к сборке.
Ищем файл с расширением "<название_проекта>.vcxproj" и запускаем его. Перед нами появится диалог в котором нам предложат обновить SDK проекта (набор библиотек для разработки, которые Microsoft периодически обновляет) и набор инструментов, жмём обновить.
Теперь наш проект можно собрать, но до сборки необходимо выбрать разрядность проекта (например, для 32 битной системы или 64 битной), а также тип сборки (отладочный режим - debug или release).
Выбираем 64 битную систему и тип сборки релиз, после чего компилируем проект. Как и ранее нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".
Некоторые проектам требуется вручную изменить SDK и набор инструментов, на установленный у вас, для этого идём в свойства проекта, выбираем сверху типа сборки и разрядность системы и уже там изменяем SDK и набор инструментов. В выпадающем меню появляются установленные у нас версии, выбираем их и нажимаем "ОК". После чего наш проект скомпилируется.
Бывает, что проект использует сторонние библиотеки, для этого их нужно загрузить отдельно и положить в папку. Узнать путь или изменить его можно в свойстве проекта, в разделе "С/C++" → "Общие" → "Дополнительные каталоги включаемых файлов".
Бывает, что SDK или набор инструментов, в свойстве проекта не изменяется в диалоге, чтобы изменить их нужно записать номер SDK, закрыть Visual Studio и вручную, блокнотом изменить этот номер в файле проекта "<название_проекта>.vcxproj".
При возникновении других проблем можно попробовать их загуглить, возможно, что кто-то уже сталкивался с ними и решил их.
Как открыть несколько проектов / папок в одном экземпляре Visual Studio Code и открыть несколько файлов в одном представлении? Есть ли у него возможность запроса на изменение в будущем?
Обновить
Как упоминалось в нескольких других ответах здесь, этот «принятый» ответ устарел и больше не является правильным. VS Code теперь имеет концепцию «рабочего пространства», которое позволяет вам добавлять несколько «корневых» папок в VS Code в одном окне.
Например, при работе над проектом в одной папке, в которой используется общий код, хранящийся в другой папке, теперь вы можете открывать и папку проекта, и общую папку в одном окне.
Для этого вы используете команду Add folder to Workspace. . Затем VS Code сохраняет эту конфигурацию в новом файле с расширением .code-workspace . Если вы дважды щелкните этот файл, VS Code повторно откроется с обеими папками.
Исходный принятый ответ (устарел)
«VSCode основан на файлах и папках - вы можете сразу начать работу, открыв файл или папку в VSCode».
Это означает, что концепция файлов решений и проектов, таких как .sln и .csproj, не имеет реальной функции в VSCode, за исключением того, что он использует их только для нацеливания и определения того, какой язык поддерживать Intellisense и тому подобное.
Проще говоря, открываемая вами папка - это корень, с которым вы работаете. Но, конечно, ничто не мешает вам открыть несколько окон.
Запускать по одному проекту в одном решении
Откройте окно обозревателя решений -> Открыть решение для проекта -> щелкните его правой кнопкой мыши -> Выберите свойства из раскрывающегося списка (Alt + Enter) -> Общие свойства -> выберите проект при запуске, вы увидите «текущий выбор, одиночный выбор и множественный выбор. Выбрав «Текущий выбор», вы сможете запускать по одному проекту за раз в одной и той же рабочей области решения с разным кодом.
Вы можете использовать это расширение, известное как Project Manager.
В этом случае проекты сохраняются в файле projects.json, просто сохраните проект и, нажав Shift + Alt + P , вы увидите список всех ваших сохраненных проектов, оттуда вы можете легко переключать свои проекты.
Вы можете создать рабочее пространство и поместить в него папки: Файл> сохранить рабочее пространство как и перетащить ваши папки в сохраненное рабочее пространство
На данный момент я предлагаю создать символические ссылки в папке, поскольку VSCode не поддерживает эту функцию.
Во-первых, создайте папку, назовите ее так, как хотите.
И вы увидите свои папки в том же окне VSCode.
Вы можете открыть до 3 файлов в одном окне, нажав [CTRL] + [^]
Невозможно нормально открыть новый экземпляр Visual Studio Code, и он не работает, если вы откроете новый экземпляр от имени администратора.
Решение: просто щелкните правой кнопкой мыши на файле VS Code .exe и выберите «Новое окно», чтобы открыть столько новых окон, сколько захотите. :)
Просто поместите свои проекты в ту же папку и просто откройте эту папку в vscode.
Теперь ваши проекты будут выглядеть так:
ГРУППА ПРОЕКТОВ
ПРОЕКТ 1
ПРОЕКТ 2
Или вы можете просто выбрать несколько папок и затем нажать «Открыть».
Перейдите в Файл> Открыть папку , затем выберите несколько папок, которые хотите открыть, и нажмите Выбрать папку .
Вы можете установить расширение Контекстные меню открытых папок для VS Code от Криса Диаса.
- Перезапустить код Visual Studio
- Щелкните папку правой кнопкой мыши и выберите «Открыть новую рабочую среду здесь».
Несколько папок в VS
Щелкните -> Файл -> Добавить папку на рабочее место.
Выберите, над каким проектом работать -> Добавить (нажмите)
Теперь мы можем открывать несколько папок в одном экземпляре, код Visual Studio назван Workspace («Area de Trabajo»). Взгляните на изображения, это очень просто.
В Windows можно использовать mklink для создания символических ссылок каталогов на необходимые папки. Затем храните их вместе в папке, и VSCode перечислит их содержимое.
Думаю, это очень похоже на идею @NeilShen.
Вы можете открыть любую папку, поэтому, если ваши проекты находятся в одном дереве, просто откройте папку под ними.
В противном случае вы можете открыть 2 экземпляра кода в качестве другого варианта
Поддержка многокорневых рабочих пространств теперь включена по умолчанию в последней стабильной версии. выпуск [выпуск за ноябрь 2017 г.].
Команда File > Add Folder to Workspace вызывает диалоговое окно "Открыть папку" для выбора новой папки.
Если вы используете unix-подобную ОС, вы можете создать мягкую ссылку на вашу целевую папку.
Например. Я хочу видеть исходный код golang, пока использую VSCode. Итак, я создаю мягкую ссылку на go/src в папке моего проекта.
Надеюсь это поможет!
Это был наш запрос на функцию №1 - это было давно, но теперь оно здесь.
Полная документация находится здесь.
Вы можете работать с несколькими папками проекта в Visual Studio Code с несколькими корневыми рабочими пространствами. Это может быть очень полезно, когда вы работаете над несколькими связанными проектами одновременно. Например, у вас может быть репозиторий с документацией по продукту, которую вы хотите поддерживать в актуальном состоянии при обновлении исходного кода продукта.
Оригинальный ответ
В настоящее время инсайдерский канал VSCode дает нам это прямо из коробки.
Дополнительные сведения см. В записи блога.
Не уверен, почему не упоминается самое простое решение. Вы можете просто сделать File>New Window и открыть другой проект в новом окне.
Visual Studio - одна из замечательнейших IDE для написания C/C++ кода. В ней пишут многие программисты и многие учебные заведения используют её для обучения программированию, а потому будет полезно знать, как создавать в ней новый проект для разработки своей C/C++ программы.
- Для создания нового проекта запустите Visual Studio, выберете в верхнем меню файл , Создать , Проект , после чего откроется окно с выбором типа проекта.
- Найдите в левом меню окна пункт Visual C++ , Классическое приложение Windows и выберете его, а в правом окне выберете Консольное приложение Windows .
- В поле ввода "Имя" введите название вашего проекта и нажмите кнопку "OK".
- Visual Studio может подвиснуть на некоторое время, но вскоре появится окно для ввода кода программы на C/C++ с готовой функцией main
Вот таким простым способом вы можете создать проект в Visual Studio и начать писать код на C или C++!
Выпускник МГУ им. М.В. Ломоносова
Programforyou — это сообщество, в котором Вы можете подтянуть свои знания по программированию, узнать, как эффективно решать те или иные задачи, а также воспользоваться нашими онлайн сервисами.
Читайте также: