Visual studio и visual studio code в чем разница

Каковы различия между кодом Visual Studio и Visual Studio?

Microsoft недавно выпустила код Visual Studio, и я немного озадачен его использованием, поскольку функционально с ним Visual Studio имеет много общего.

Например, если вы хотите создать приложение ASP.NET с использованием кода VS, вам нужно выполнить несколько шагов самостоятельно для настройки проекта. Существует отдельное руководство для каждой ОС.

Я предоставлю подробные различия между Visual Studio и Visual Studio Code ниже.

Второе наиболее очевидное отличие заключается в том, что Visual Studio ориентирована на проекты и решения.

Код Visual Studio:

Visual Studio:

Visual Studio призвана стать лучшей в мире IDE (интегрированной средой разработки), которая предоставляет наборы инструментов для разработки полного стека, включая мощный компонент завершения кода, называемый IntelliSense, отладчик, который может отлаживать как исходный код, так и машинный код, все, что касается разработки ASP.NET и кое-что о разработке SQL.

В последней версии Visual Studio вы можете разрабатывать кроссплатформенные приложения, не покидая IDE. А Visual Studio занимает более 8 ГБ дискового пространства (в зависимости от выбранных вами компонентов).

Короче говоря, Visual Studio является идеальной средой разработки, и она довольно тяжелая.

В дополнение к предыдущим ответам, одно большое различие между ними заключается в том, что код Visual Studio поставляется в так называемой «переносной» версии, которая не требует полных прав администратора для запуска в Windows и может быть помещена на съемный диск для удобства.

Visual Studio

Visual Studio Code

Источник

Каковы различия между Visual Studio Code и Visual Studio?

Microsoft недавно выпустила Visual Studio Code и я немного запутался в его использовании, так как Visual Studio имеет много общего функционально с ним.

7 ответов:

в Visual Studio (полная версия) является «полнофункциональной» и «удобной» средой разработки.

Visual Studio (бесплатные «экспресс» версии-только до 2017 года) являются функционально-центрированными и упрощенными версиями полной версии. Функция-центрированная означает, что существуют разные версии (Visual Studio Web Developer, Visual Studio C# и т. д.) в зависимости от вашей цели.

Visual Studio Code (VSCode) это кросс-платформенный (Linux, Mac OS, Windows) редактор, который может быть расширен с помощью плагинов для ваших нужд.

например, если вы хотите использовать VSCode с ASP.NET:

VS Code-это редактор, а VS-это IDE.

VS Code является кросс-платформенным и быстрым, в то время как VS-это только Windows/Mac и не быстро.

ниже я приведу подробные различия между Visual Studio и кодом Visual Studio.

все собственные технологии пользовательского интерфейса (Windows Presentation Foundation, Windows Forms и т. д.) являются частью фреймворка, а не ядром.

«Визуальный» в Visual Studio (от Visual Basic) был в значительной степени синонимом визуального интерфейса (drag & drop WYSIWYG) дизайн, так что в этом смысле VS Code-это Visual Studio без визуального!

второе наиболее очевидное различие заключается в том, что Visual Studio, как правило, ориентирована на проекты и решения.

VS код:

Visual Studio:

Visual Studio стремится быть лучшая в мире IDE (интегрированная среда разработки), которая обеспечивает полный стек разработки наборов инструментов в том числе мощный компонент завершения кода под названием IntelliSense, отладчик, который может отлаживать как исходный код, так и машинный код, все об этом ASP.NET разработка и что-то о разработке SQL.

в последней версии Visual Studio вы можете разрабатывать кросс-платформенные приложения, не выходя из IDE. И Visual Studio берет более 8 ГБ дискового пространства (по к выбранным компонентам).

короче говоря, Visual Studio-это идеальная среда разработки, и она довольно тяжелая.

дополняя приведенные выше ответы, одна большая разница между ними заключается в том, что VS-код поставляется в так называемой «портативной» версии, которая не требует полных административных разрешений для работы в Windows и может быть размещена на съемном диске для удобства.

Visual Studio Code

визуальный Studio-это интегрированная с поддержкой командной строки / терминала, следовательно, это будет удобно, когда требуется переключение между IDE и терминалом / командной строкой, например: подключение к Linux

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

Источник

В чем разница между Visual Studio Code и Visual Studio?

Microsoft недавно выпустила код Visual Studio, и я немного смущен его использованием, поскольку Visual Studio функционально схож с ним.

8 ответов

Например, если вы хотите создать приложение ASP.NET с помощью VS Code, вам нужно выполнить несколько шагов самостоятельно, чтобы настроить проект. Для каждой ОС существует отдельный учебник.

По умолчанию Visual Studio может компилировать, запускать и отлаживать программы.

По умолчанию VS Code практически ничего не может делать, кроме как открывать и редактировать текстовые файлы. Его можно расширить для компиляции / запуска / отладки, но вам потребуется установить другое программное обеспечение. Это ПИТА.

Для меня Visual Studio на Mac не поддерживает Node.JS (редактирование и отладка), тогда как VS Code делает это очень хорошо.

Visual Studio Code интегрирован с командной строкой / терминалом, поэтому он будет удобен, когда требуется переключение между IDE и терминалом / командной строкой, например: подключение к Linux.

При использовании VSCode вам НЕОБХОДИМО установить пакет «Visual Studio Code». (Не путать с пакетом «Visual Studio».) (Мне кажется, что VS отлично работает без пакета VS, но с VS Code вы должны установить пакет Unity VSCode.)

Visual studio и visual studio code в чем разница. MarAi. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-MarAi. картинка Visual studio и visual studio code в чем разница. картинка MarAi

Когда вы впервые загружаете и устанавливаете VSCode, просто откройте любой файл C # на своем компьютере. Он сразу же предложит вам установить необходимый пакет C #. Это легко и безопасно.

Насколько я понимаю, каждая функция VS, которую вы используете в Unity, присутствует в VSCode. (Итак, раскраска кода, переход к определениям, он понимает / автозаполняет каждую вещь в Unity, он открывается из Unity, двойной щелчок по чему-то в консоли Unity открывает файл для этой строки и т. Д.)

Если вы привыкли к VS. И вы хотите перейти на VSCode. Всегда сложно менять редакторов, они такие близкие, но это довольно похоже; у вас не будет большой душевной боли.

Короче говоря, если вы являетесь пользователем VS for Unity3D,

VSCode примерно в 19 триллионов раз быстрее во всех отношениях. Это взорвет ваш разум.

Если я не ошибаюсь, нет никакой причины использовать VS с Unity.

Нет установщиков и т.д. и т.п. На странице загрузки вы загружаете заархивированное приложение для Mac. Поместите его в папку Applications, и все готово.

Складной! (Нажатие клавиш Mac / Windows отличается)

Как ни странно, для сворачивания нет никакого пункта меню / документа, но вот ключи:

Особенно для пользователей Mac, которым цвета могут показаться странными:

Чтобы список файлов «Explorer» слева был аккуратным, в случае Unity:

Visual studio и visual studio code в чем разница. Rko5g. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-Rko5g. картинка Visual studio и visual studio code в чем разница. картинка Rko5g

В дополнение к предыдущим ответам, одно большое различие между ними заключается в том, что Visual Studio Code поставляется в так называемой «переносной» версии, которая не требует полных административных разрешений для работы в Windows и для удобства может быть помещена на съемный диск.

Ниже я подробно расскажу о различиях между Visual Studio и Visual Studio Code.

Все технологии собственного пользовательского интерфейса (Windows Presentation Foundation, Windows Forms и т. д.) являются частью фреймворка, а не его ядром.

Второе наиболее очевидное отличие состоит в том, что Visual Studio ориентирована на проекты и решения.

Код Visual Studio:

Visual Studio:

Visual Studio нацелена на то, чтобы стать лучшей в мире IDE (интегрированной средой разработки), которая предоставляет полный набор инструментов для разработки, включая мощный компонент завершения кода под названием IntelliSense, отладчик, который может отлаживать как исходный код, так и машинный код, все о разработке ASP.NET и кое-что о разработке SQL.

В последней версии Visual Studio вы можете разрабатывать кроссплатформенные приложения, не выходя из IDE. А Visual Studio занимает более 8 ГБ дискового пространства (в зависимости от выбранных вами компонентов).

Источник

Чем отличается visual studio от visual studio code

Visual studio и visual studio code в чем разница. girlanda. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-girlanda. картинка Visual studio и visual studio code в чем разница. картинка girlanda

Каковы различия между кодом Visual Studio и Visual Studio?

Visual studio и visual studio code в чем разница. sviter. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-sviter. картинка Visual studio и visual studio code в чем разница. картинка sviter

Microsoft недавно выпустила код Visual Studio, и я немного озадачен его использованием, поскольку функционально с ним Visual Studio имеет много общего.

Visual Studio (полная версия) — это «полнофункциональная» и «удобная» среда разработки.

Visual Studio (бесплатные «Экспресс» версии — только до 2017 года) — это функционально-ориентированные и упрощенные версии полной версии. Функционально-ориентированный означает, что существуют разные версии (Visual Studio Web Developer, Visual Studio C # и т. Д.) В зависимости от вашей цели.

Visual Studio (бесплатная версия Community — с 2015 года) является упрощенной версией полной версии и заменяет отдельные экспресс-версии, использовавшиеся до 2015 года.

Visual Studio Code (VSCode) — это кроссплатформенный (Linux, Mac OS, Windows) редактор, который может быть дополнен плагинами для ваших нужд.

Например, если вы хотите создать приложение ASP.NET с использованием кода VS, вам нужно выполнить несколько шагов самостоятельно для настройки проекта. Существует отдельное руководство для каждой ОС.

Visual Studio Code — это редактор, а Visual Studio — IDE.

Visual Studio Code является кроссплатформенным и быстрым, тогда как Visual Studio — только для Windows / Mac и не быстрым.

Visual studio и visual studio code в чем разница. derevo. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-derevo. картинка Visual studio и visual studio code в чем разница. картинка derevo

Я предоставлю подробные различия между Visual Studio и Visual Studio Code ниже.

«Visual» в Visual Studio (из Visual Basic) был в значительной степени синонимом дизайна визуального пользовательского интерфейса (drag & drop WYSIWYG), поэтому в этом смысле код Visual Studio — это Visual Studio без Visual!

Второе наиболее очевидное отличие заключается в том, что Visual Studio ориентирована на проекты и решения.

Код Visual Studio:

Visual Studio:

Visual Studio призвана стать лучшей в мире IDE (интегрированной средой разработки), которая предоставляет наборы инструментов для разработки полного стека, включая мощный компонент завершения кода, называемый IntelliSense, отладчик, который может отлаживать как исходный код, так и машинный код, все, что касается разработки ASP.NET и кое-что о разработке SQL.

В последней версии Visual Studio вы можете разрабатывать кроссплатформенные приложения, не покидая IDE. А Visual Studio занимает более 8 ГБ дискового пространства (в зависимости от выбранных вами компонентов).

Короче говоря, Visual Studio является идеальной средой разработки, и она довольно тяжелая.

Visual studio и visual studio code в чем разница. sviter2. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-sviter2. картинка Visual studio и visual studio code в чем разница. картинка sviter2

Visual Studio Code или Visual Studio? Что выбрать, в чем отличия

Visual studio и visual studio code в чем разница. girlanda. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-girlanda. картинка Visual studio и visual studio code в чем разница. картинка girlanda

В этой сводной таблице я выделил наиболее важные моменты, на которые стоит обратить внимание:

Тип ПО

Среда разработки (IDE)

Редактор кода с функциями IDE

Цена

Бесплатная (с ограниченным функционалом)
и платная версии

Полностью бесплатный для личного и коммерческого использования, opensource

Кроссплатформенность

Полная (macOS, Linux, Windows)

Поддержка языков программирования

Visual studio и visual studio code в чем разница. girlanda. Visual studio и visual studio code в чем разница фото. Visual studio и visual studio code в чем разница-girlanda. картинка Visual studio и visual studio code в чем разница. картинка girlanda

Все популярные (Python, C/C++, C#, Java, Go, PHP, Ruby и т.д.)

Система управления версиями (Version control)

Что выбрать?

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

Каковы различия между Visual Studio Code и Visual Studio?

Microsoft недавно выпустила Visual Studio Code и я немного запутался в его использовании, так как Visual Studio имеет много общего функционально с ним.

7 ответов:

VS Code-это редактор, а VS-это IDE.

VS Code является кросс-платформенным и быстрым, в то время как VS-это только Windows/Mac и не быстро.

Visual Studio стремится быть лучшая в мире IDE (интегрированная среда разработки), которая обеспечивает полный стек разработки наборов инструментов в том числе мощный компонент завершения кода под названием IntelliSense, отладчик, который может отлаживать как исходный код, так и машинный код, все об этом ASP.NET разработка и что-то о разработке SQL.

в последней версии Visual Studio вы можете разрабатывать кросс-платформенные приложения, не выходя из IDE. И Visual Studio берет более 8 ГБ дискового пространства (по к выбранным компонентам).

короче говоря, Visual Studio-это идеальная среда разработки, и она довольно тяжелая.

дополняя приведенные выше ответы, одна большая разница между ними заключается в том, что VS-код поставляется в так называемой «портативной» версии, которая не требует полных административных разрешений для работы в Windows и может быть размещена на съемном диске для удобства.

визуальный Studio-это интегрированная с поддержкой командной строки / терминала, следовательно, это будет удобно, когда требуется переключение между IDE и терминалом / командной строкой, например: подключение к Linux

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

Источник

Переход с Visual Studio на VS Code

Если вы используете Microsoft Visual Studio в коммерческих целях, то вам нужно покупать лицензию. Фирма, в которой я работаю, такую лицензию имеет. Однако, почему бы не избавиться от необходимости платить, и не перейти на бесплатные средства разработки? Вот и стали мы переходить… Оказалось, что не так это сложно, в конце концов интегрированная среда разработки (ее платная часть) — это лишь графическая оболочка, которая для своей работы пользуется различными бесплатными утилитами командной строки. Графическую Visual Studio часть можно компенсировать бесплатным редактором исходного кода Visual Studio Code. Что требуется от редактора? Две вещи: IntelliSense и поддержка отладки исходного кода. В VS Code это есть. Но текстовый редактор — это не IDE, поэтому такие задачи как компиляция исходного кода и управление пакетами придется выполнять «своими руками», т. е. используя утилиты командной строки. В отсутствие IDE придется научиться этими утилитами пользоваться. Обо всех проблемах, связанных с переходом с Visual Studio на свободное ПО — далее в этой заметке.

Управление пакетами — Nuget Package Manager

Nuget — это менеджер пакетов (package manager) — утилита, которая автоматизирует использование (в частности, скачивание, установку, удаление) стороннего кода. Подробнее о менеджерах пакетов вообще и о Nuget в частности читайте в статье Что такое Nuget и для чего он нужен. Nuget поставляется в составе Visual Studio. Существует целый зоопарк родных поддерживаемых Microsoft инструментов для управления пакетами, основанный на Nuget. Какие-то из них доступны только из Visual Studio, какие-то можно использовать сами по себе. Перечислю их в том порядке, в котором я их для себя открывал:

ИнструментТолько в составе Visual Studio?
Package Manager UIда
Package Manager Consoleда
nuget.exeнет
dotnet.exeнет
PowerShell PackageManagementнет

packages.config и PackageReference

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

Второй вариант — это когда информация о пакетах для проекта хранится прямо в файле проекта (*.csproj) в xml-узлах под названием PackageReference.

Ну а теперь — к инструментам…

Package Manager UI и Package Manager Console

nuget.exe

Консольная утилита nuget.exe — это, как мне кажется, самый простой и понятный инструмент, который можно использовать без Visual Studio. Но сначала его надо установить. Для этого надо скачать nuget.exe в какую-нибудь папку и добавить путь к этой папке в переменную окружения PATH (в Windows: Панель управления\Система и безопасность\Система\Дополнительные параметры системы\Переменные среды ).

Установка пакетов для заданного проекта
1. В папке проекта (где лежит файл *.csproj) создайте файл packages.config и добавьте в него информацию о необходимых пакетах. Вот пример такого файла:

id = «AForge» version = «2.2.5» targetFramework = «net46» />

id = «AForge.Imaging» version = «2.2.5» targetFramework = «net46» />

id = «AForge.Math» version = «2.2.5» targetFramework = «net46» />

2. Далее в командной строке (обычной cmd.exe) запускаем nuget. При этом в аргументах командной строки обязательно надо указать путь к файлу packages.config и путь к папке, в которую будут установлены пакеты (обычно это папка packages, которая лежит в папке решения):

Примечательно, что средства Visual Studio Package Manager Console и Package Manager UI а также утилита dotnet.exe при установке пакета добавляют ссылки на сборки этого пакета в файл проекта (*.csproj), а вот утилита nuget.exe не добавляет. Поэтому вам придется добавлять ссылки вручную (что необязательно плохо — я, например, люблю утилиты которые делают только узкую специфическую часть работы, а не все сразу).

Восстановление пакетов для всего решения
Переходим в корневую папку решения и вызываем:

Когда нужно восстановить пакеты, nuget.exe ищет в папках проектов файлы packages.config и считывает из них информацию о том, какие именно пакеты надо установить.

dotnet.exe

Установка пакетов для заданного проекта

Восстановление пакетов для всего решения

PowerShell PackageManagement

И еще один инструмент — PowerShell PackageManagement — модуль PowerShell, который содержит такие же cmdlet’ы, как и интерфейс командной строки Visual Studio (Find-Package, Istall-Package и пр.) Но, оказывается, консольный интерфейс Visual Studio и интерфейс 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.

Чтобы воспользоваться PowerShell PackageManagement, вы можете запустить Windows PowerShell или PowerShell ISE. При попытке что-то установить этим инструментом у меня возникли проблемы, описанные в топике Nuget Packages do not display on powershell Windows 10 на superuser.com. Например, пытаемся посмотреть доступные пакеты NuGet стандартным способом, который описывается в документации от Microsoft:

И не видим ничего. А делать надо так:

Поиск пакетов по имени
Допустим я хочу установить пакет Extended.Wpf… что-то там, не помню как называется.

Ага, есть такой пакет, называется Extended.Wpf.Toolkit. Теперь я его устанавливаю:

Естественно, никакие ссылки в проект не добавляются (т. е. в этом смысле PowerShell PackageManagement работает аналогично nuget.exe).
А теперь я хочу посмотреть список установленных пакетов:

Переход с Nuget на Paket

При безусловных преимуществах, которые дает использование Nuget, есть и некоторые мелкие неудобства. Нас с коллегами например напрягало, что при установке (или восстановлении) пакета средствами Visual Studio в проект всегда добавляются ссылки на сборки пакета с установленным свойством Copy Local = True, т. е. они будут копироваться в выходную папку проекта, а нас такое поведение не устраивало по некоторым причинам.

Поэтому мы решили рассмотреть переход на другой менеджер пакетов — Paket. Преимущества Paket (по мнению его авторов) по сравнению с Nuget описаны на страничке проекта на GiHub. Как и nuget.exe, Paket — это консольная утилита, которая для Windows поставляется в виде файла packet.exe. Процесс установки описан в Paket installation. Есть некоторые нюансы касательно установки:

1. Вам придется создать в корне вашего решения папку .paket, а поскольку имя папки начинается с точки, вы сможете сделать это только из командной строки:

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 загружает пакеты в папку SolutionDir\packages — в ту же самую папку, в которую их загружает NuGet.

Команда paket.exe install генерирует в папке решения файл paket.lock, который описывает какой пакет от какого пакета зависит. У меня он выглядит так:

Далее надо для каждого проекта указать, какие пакеты этому проекту нужны. Для этого надо создать в папке каждого проекта файл paket.references. Этот файл очень простой — в нем просто перечисляются названия пакетов без указания версий. Вот как он выглядит для одного из проектов в моем решении:

Если теперь запустить paket.exe install, то нужные пакеты не только загрузятся в папку packages (если они уже не загружены), но и в файл проекта (.csproj) добавятся ссылки на сборки из этих пакетов. Я уже писал выше, что для меня было важно в ссылках на сборки контролировать параметр Copy Local и делать его равным False. В paket это достигается строчкой copy_local: false в файле paket.dependencies.

Вот собственно и весь процесс использования paket. Последнее, что нужно сказать: если вы в своем решении уже пользовались NuGet, и переходите на paket, то утилита paket может выполнить этот переход полностью автоматически (т. е. вам не придется делать все, что было описано выше, нужно будет только скачать paket.exe):

Создание проектов и решений без Visual Studio

Создание файлов проектов и решений вручную

ToolsVersion = «12.0» DefaultTargets = «Build» xmlns = «http://schemas.microsoft.com/developer/msbuild/2003» >
.
.
.

Name = «PostBuild» AfterTargets = «Build» >

Command = «echo POSTBUILD COPYING OUTPUT FILES» />

SourceFiles = «@(OutputFiles)»
DestinationFolder = «$(DistributionFolder)» />
>

Во фрагменте файла проекта (.csproj) даны комментарии по терминологии (в MSBuild ключевую роль играют понятия: Target, Task, Property и Item). По принципам своей работы MSBuild очень похожа на утилиту make.

Небольшое отступление. Если речь не идет о создании нового файла проекта (.csproj), а лишь об изменении имеющегося, то даже необязательно редактировать файл проекта. Те изменения, которые вы планируете внести в файл проекта можно вынести в отдельные два файла Directory.Build.props и Directory.Build.targets, которые утилита MSBuild сама ищет в папке проекта и выше нее и импортирует в проект. Подробнее об этом читайте в статье Customize your build.

Утилита dotnet.exe

Здесь MySolution — имя решения (будет создан файл MySolution.sln), MyProject — имя проекта (в папке решения будет создана папка MyProject и в ней — файл MyProject.csproj).

Утилита CMake

В топике на Stack Overflow — Generate C# project using CMake и на страничке проекта cmake_csharp_example на GitHub объясняется как можно сгенерировать проект csproj при помощи CMake, но… CMake требует наличия на компьютере установленной Visual Studio.

Программная генерация файлов проектов и решений

Резюме

Таким образом, я не нашел простого способа генерировать файлы решений и проектов без Visual Studio 🙁 Если выбирать из того что есть, то я склоняюсь к созданию файлов проектов вручную в текстовом редакторе. При этом создать вручную файл решения (sln) — это уже совсем геморрой, потому что в нем используются GUID’ы, но как раз файл решения, как мне кажется, можно создавать утилитой dotnet.exe.

Сборка решения

MSBuild

Без Visual Studio вы можете построить проект при помощи утилиты MSBuild.exe, которую можно скачать и использовать бесплатно. Например, чтобы построить 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 (автоматизация сборки решения)

Build system — это некий софт, который выполняет сборку программы из кучи файлов (исходников и ресурсов), учитывая зависимости этих файлов друг от друга. Яркими представителями такого софта (из известных мне) являются утилиты GNU make, CMake, MSBuild. Когда вы используете такую утилиту для сборки своей программы, вы всегда создаете некий текстовый файл, в котором так или иначе описывается процесс сборки (в GNU make это makefile, в MSBuild это файл проекта).

При построении большого решения, о котором я рассказывал в прошлой заметке, у нас возникают проблемы формирования дистрибутива (т. е. копирования файлов), которые стандартными средствами Visual Studio (читай — средствами MSBuild) не очень легко решаются — приходится писать скрипты например для PowerShell. Связана эта проблема с тем, что дистрибутив у нас — это не одна папка, в которую сваливаются все сборки (dll-ки) а целая структура папок. А структура папок нам нужна а) чтобы не запутаться в огромной куче файлов б) потому что программа у нас модульная, поддерживает плагины, и каждый плагин — это папка с одной или несколькими сбороками внутри; плагин устанавливается путем копирования такой папки в дистрибутив, а удаляется соответственно путем удаления этой папки из дистрибутива.

При отказе от Visual Studio возникают дополнительные проблемы — приходится «вручную» вызывать package manager для восстановления пакетов и MSBuild для сборки проектов. Все это приводит к необходимости написать такой скрипт, который бы выполнял все наши задачи:

Build SystemProgramming Language
NukeC#
CakeС#
PsakePowerShell
FakeF#
RakeRuby

В итоге остановились на системе Nuke.

Установка Nuke на компьютер:

Установка Nuke в решение Visual Studio:

Далее у меня состоялся с утилитой следующий диалог:

Утилита создает в корне решения несколько файлов (из которых нас интересует только build.ps1) и проект — консольное приложение на C#, которое будет строить наше решение.

Пример очень простого кода Build.cs:

AbsolutePath SourceDirectory => RootDirectory / «src» ;

Nuke — это, помимо всего прочего, API, который позволяет анализировать файлы проектов (.csproj) и решений (.sln). Например, следующий учебный кусок кода проходит по всем проектам в решении и выводит в консоль название папки решения (Solution Folder), в которой находится проект и свойство OutputPath проекта:

Итак, у нас есть проект программы, которая выполняет сборку решения. Теперь чтобы запустить процесс сборки решения, надо выполнить в командной строке powershell скрипт build.ps1:

Расширения для Visual Studio

Command Task Runner

Мы с вами уже увидели, что для того чтобы выпонять различные задачи, например построить ⁄ очистить решение или восстановить пакеты, надо вызывать разные утилиты из командной строки. Это можно делать как при помощи обычной windows’овской командной строки cmd.exe или оболочки PowerShell, так и при помощи командной строки Visual Studio — Package Manager Console. Неудобство заключается в том, что 1) надо держать в памяти все команды, которые могут понадобиться в жизни 2) надо печатать их вручную в командной строке. Для облегчения жизни программиста в Visual Studio существует компонент под названием Task Runner Explorer ( View > Other Windows > Task Runner Explorer ), в котором отображается список задач, любую из которых можно запустить одним кликом. Сами задачи берутся из файла commands.json, который надо создавать и редактировать вручную. В описании каждой задачи в файле commands.json указывается утилита, которую надо запустить, и аргументы командной строки. В свою очередь, чтобы не создавать и не редактировать его вручную, существует расширение Command Task Runner.

Вот пример файла commands.json с двумя задачами (BuildRelease и Clean), которые выполняются путем запуска скрипта build.ps1 (скрипт PowerShell, который появился при установке Nuke):

Обратил внимание на такую неприятную особенность Task Runner Explorer: когда запускаешь задачу, графический интерфейс Visual Studio становится недоступным. Видимо задача запускается в потоке обработки сообщений (windows message loop).

NUKE Support

Как пользоваться VS Code

В окне VS Code слева находится панелька EXPLORER. Там вы увидите кнопку Открыть папку (Open Folder). Вы щелкаете по этой кнопке и в диалоге выбора папки выбираете папку вашего решения (SolutionDir). После этого VS Code начинает загружать решение (Не знаю, что именно делает VS Code, но какая-то обработка файлов проектов происходит — ее ход отображается в панели OUTPUT в нижней части окна VS Code). Далее нам нужны две вещи: 1) одним кликом запускать сборку решения; 2) научиться отлаживать программу.

Command Palette

Отладка в VS Code

Во-первых, чтобы писать и отлаживать код на C# в VS Code рекомендуют установить расширение C# for Visual Studio Code.

Благодарности

Автор благодарит своего коллегу Сашу Новикова. Этот не хороший человек раньше меня разобрался во всех этих nuget’ах, paket’ах, msbuild’ах, fake’ах и прочих vscod’ах и заставил меня разбираться в них тоже, а также помогал консультацией, да еще и эту заметку прочитал и высказал ценные замечания. Спасибо, Саша!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *