Как передать проект visual studio
Перейти к содержимому

Как передать проект visual studio

  • автор:

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

Эта фиксация не принадлежит ни к одной из веток в этом репозитории и может принадлежать ответвлению за пределами репозитория.

  • Открыть с рабочего стола
  • Просмотреть в необработанном виде
  • Копировать исходное содержимое Копировать необработанное содержимое

Вы можете открывать код практически из любого типа проекта на основе каталога в Visual Studio без необходимости в решении или файле проекта. Это означает, что вы можете, например, клонировать репозиторий на GitHub, открыть его непосредственно в Visual Studio и начать разработку без необходимости создавать решение или проект. При необходимости вы можете указать собственные задачи сборки и параметры запуска с помощью простых файлов JSON. После того как вы откроете файлы кода в Visual Studio, обозреватель решений отобразит все файлы в папке. Вы можете нажать на любой файл, чтобы начать его редактирование. В фоновом режиме Visual Studio начинает индексировать файлы, чтобы включить функции IntelliSense, навигации и рефакторинга. Когда вы редактируете, создаете, перемещаете или удаляете файлы, Visual Studio автоматически отслеживает изменения и постоянно обновляет свой индекс IntelliSense. Код отображается с раскрашиванием синтаксиса и во многих случаях включает базовое завершение операторов IntelliSense. Вы можете открыть код в Visual Studio следующими способами: В строке меню Visual Studio выберите «Файл» > «Открыть» > «Папка», а затем перейдите к расположению кода. В контекстном меню (щелкните правой кнопкой мыши) папки, содержащей код, выберите команду «Открыть в Visual Studio». Выберите ссылку «Открыть папку» на стартовой странице Visual Studio.

[!IMPORTANT] Не весь код можно открыть с помощью ссылки «Открыть папку» на стартовой странице Visual Studio. Например, если ваш файл кода был сохранен как часть решения, другими словами, в файле .sln, вы должны использовать один из других перечисленных здесь вариантов, чтобы открыть свой код.

Выберите ссылку «Открыть папку» в начальном окне.

[!IMPORTANT] Не весь код можно открыть с помощью ссылки «Открыть папку» в стартовом окне Visual Studio. Например, если ваш файл кода был сохранен как часть решения, другими словами, в файле .sln, вы должны использовать один из других перечисленных здесь вариантов, чтобы открыть свой код.

Если вы пользуетесь клавиатурой, нажмите Ctrl+Shift+Alt+O в Visual Studio. Откройте код из клонированного репозитория GitHub. Чтобы открыть код из клонированного репозитория GitHub

В следующем примере показано, как клонировать репозиторий GitHub, а затем открыть его код в Visual Studio. Чтобы выполнить эту процедуру, в вашей системе должна быть установлена ​​учетная запись GitHub и Git для Windows. Дополнительные сведения см. в разделе Регистрация новой учетной записи GitHub и Git для Windows. Перейдите к репозиторию, который вы хотите клонировать, на GitHub. Нажмите кнопку «Клонировать» или «Загрузить», а затем нажмите кнопку «Копировать в буфер обмена» в раскрывающемся меню, чтобы скопировать защищенный URL-адрес репозитория GitHub. Кнопка клонирования GitHub
В Visual Studio выберите вкладку Team Explorer, чтобы открыть Team Explorer. Если вы не видите вкладку, откройте ее, выбрав Вид > Team Explorer. В Team Explorer в разделе «Локальные репозитории Git» выберите команду «Клонировать», а затем вставьте URL-адрес страницы GitHub в текстовое поле. Клонировать проект
Нажмите кнопку «Клонировать», чтобы клонировать файлы проекта в локальный репозиторий Git. В зависимости от размера репозитория этот процесс может занять несколько минут. После того как репозиторий будет клонирован в вашу систему, в Team Explorer выберите команду «Открыть» в контекстном меню (щелкните правой кнопкой мыши) вновь клонированного репозитория. Ширина клонированного репозитория
Выберите команду «Показать представление папки», чтобы просмотреть файлы в обозревателе решений. Показать вид папки
Теперь вы можете просматривать папки и файлы в клонированном репозитории, а также просматривать и искать код в редакторе кода Visual Studio, дополненном раскрашиванием синтаксиса и другими функциями. Запуск и отладка кода

Вы можете отлаживать свой код в Visual Studio без проекта или решения! Для отладки некоторых языков может потребоваться указать допустимый файл запуска в кодовой базе, например скрипт, исполняемый файл или проект.В раскрывающемся списке рядом с кнопкой «Пуск» на панели инструментов перечислены все элементы автозагрузки, обнаруженные Visual Studio, а также элементы, специально назначенные вами. Visual Studio сначала запускает этот код при отладке кода. Настройка кода для запуска в Visual Studio зависит от типа кода и инструментов сборки. Кодовые базы, использующие MSBuild

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

Если в вашей кодовой базе используются настраиваемые инструменты сборки, вы должны указать Visual Studio, как собирать код с помощью задач сборки, определенных в файле .json. Дополнительные сведения см. в разделе Настройка задач сборки и отладки. Базы кода, содержащие код Python или JavaScript

Node.js и Рабочие нагрузки разработки Python

Если ваша кодовая база содержит код Python или JavaScript, вам не нужно настраивать файлы .json, но вам нужно установить соответствующую рабочую нагрузку. Вы также должны настроить сценарий запуска: Установите рабочую нагрузку разработки Node.js или Python, выбрав «Инструменты» > «Получить инструменты и функции» или закрыв Visual Studio и запустив установщик Visual Studio.
В обозревателе решений щелкните правой кнопкой мыши или в контекстном меню файла JavaScript или Python выберите команду «Установить как элемент автозагрузки». Нажмите кнопку «Пуск», чтобы начать отладку. Кодовые базы, содержащие код C++

Сведения об открытии кода C++ без решений или проектов в Visual Studio см. в разделе Открытие проектов папки для C++. Базы кода, содержащие проект Visual Studio

Если ваша папка с кодом содержит проект Visual Studio, вы можете назначить этот проект в качестве элемента запуска.
Текст кнопки «Пуск» изменится, чтобы отразить, что проект является элементом автозагрузки. В этой вводной статье рассказывается, что значит создавать решение и проект в Visual Studio. Решение — это контейнер для организации одного или нескольких связанных проектов кода, таких как проект библиотеки классов и соответствующий тестовый проект. В качестве учебного упражнения для понимания концепции проекта вы создадите решение и проект с нуля. Обычно вы используете шаблоны проектов Visual Studio для создания новых проектов. Вы также просмотрите свойства проекта и некоторые файлы, которые он может содержать, и создадите ссылку из одного проекта в другой. Разработка приложений в Visual Studio не требует решений и проектов. Вы можете просто открыть папку, содержащую код, и начать кодирование, сборку и отладку. Например, клонированный репозиторий GitHub может не содержать проекты и решения Visual Studio. Дополнительные сведения см. в статье Разработка кода в Visual Studio без проектов или решений. Если вы еще не установили Visual Studio, перейдите на страницу загрузок Visual Studio, чтобы установить ее бесплатно. Если вы еще не установили Visual Studio 2019, перейдите на страницу загрузок Visual Studio, чтобы установить ее бесплатно. Если вы еще не установили Visual Studio, перейдите на страницу загрузок Visual Studio, чтобы установить ее бесплатно.

Решения и проекты

В Visual Studio решение не является «ответом». Решение — это просто контейнер, который Visual Studio использует для организации одного или нескольких связанных проектов. Когда вы открываете решение, Visual Studio автоматически загружает все содержащиеся в нем проекты.

Создать решение

Начните исследование с создания пустого решения. После знакомства с Visual Studio вы, вероятно, не будете слишком часто создавать пустые решения. Когда вы создаете новый проект, Visual Studio автоматически создает решение для проекта, если решение еще не открыто. Откройте Visual Studio. В верхней строке меню выберите «Файл» > «Создать» > «Проект». Откроется диалоговое окно «Новый проект». На левой панели разверните Другие типы проектов и выберите Решения Visual Studio. В центральной панели выберите шаблон Пустое решение. Назовите свое решение QuickSolution, затем нажмите кнопку OK.
Если у вас установлено несколько рабочих нагрузок, шаблон пустого решения может не отображаться в верхней части списка результатов поиска. Попробуйте прокрутить до других результатов на основе вашего раздела поиска в списке. Он должен появиться там. Назовите решение QuickSolution и нажмите кнопку Создать. Решение отображается в обозревателе решений в правой части окна Visual Studio. Вероятно, вы будете часто использовать обозреватель решений для просмотра содержимого своих проектов. Откройте Visual Studio и в начальном окне выберите Создать новый проект. На странице «Создание нового проекта» введите пустое решение в поле поиска, выберите шаблон «Пустое решение» и нажмите кнопку «Далее».
Если у вас установлено несколько рабочих нагрузок, шаблон пустого решения может не отображаться в верхней части списка результатов поиска. Попробуйте пролистать другие результаты поиска, чтобы найти нужный шаблон. На странице «Настройка нового проекта» назовите решение QuickSolution и нажмите «Создать». Решение QuickSolution отображается в обозревателе решений в правой части окна Visual Studio. Вы будете часто использовать обозреватель решений для просмотра содержимого своих проектов.

Добавить проект

Снимок экрана со ссылкой на Open Visual Studio Installer.

Теперь добавьте свой первый проект в решение. Начните с пустого проекта и добавьте необходимые элементы. В контекстном меню решения «QuickSolution» в обозревателе решений выберите «Добавить» > «Новый проект». Откроется диалоговое окно «Добавить новый проект». Под решением в обозревателе решений появится проект QuickDate. В настоящее время он содержит один файл с именем App.config.
Щелкните правой кнопкой мыши решение «QuickSolution» в обозревателе решений и выберите «Добавить» > «Новый проект» в контекстном меню.
На странице «Настройка нового проекта» назовите проект QuickDate и выберите «Создать». Проект QuickDate отображается под решением в обозревателе решений. В настоящее время проект содержит один файл с именем App.config.

Добавить элемент в проект

Добавьте файл кода в пустой проект. В контекстном меню проекта QuickDate в обозревателе решений выберите Добавить > Новый элемент. Откроется диалоговое окно «Добавить новый элемент». Замените содержимое файла Calendar.cs следующим кодом: Вам еще не нужно понимать все, что делает код. Запустите приложение, нажав Ctrl+F5, и убедитесь, что приложение выводит текущую дату в консоль или в стандартное окно вывода. Затем закройте окно консоли.

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

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

Решения обычно содержат более одного проекта, и эти проекты часто ссылаются друг на друга. Некоторые проекты в решении могут быть библиотеками классов, некоторые могут быть исполняемыми приложениями, а некоторые могут быть проектами модульного тестирования или веб-сайтами. Чтобы добавить в решение проект модульного тестирования, начните с шаблона проекта, чтобы не добавлять в проект еще один файл кода. В контекстном меню решения «QuickSolution» в обозревателе решений выберите «Добавить» > «Новый проект». Второй проект добавляется в обозреватель решений, и в редакторе открывается файл с именем UnitTest1.cs.
В контекстном меню решения «QuickSolution» в обозревателе решений выберите «Добавить» > «Новый проект». На странице «Настройка нового проекта» назовите проект QuickTest и нажмите «Создать». Visual Studio добавит проект QuickTest в обозреватель решений, и файл UnitTest1.cs откроется в редакторе.

Добавить ссылку на проект

Вы будете использовать новый проект модульного тестирования для проверки своего метода в проекте QuickDate, поэтому вам необходимо добавить ссылку на QuickDate в проект QuickTest. Добавление ссылки создает зависимость сборки между двумя проектами, а это означает, что при сборке решения QuickDate строится перед QuickTest. Выберите узел Зависимости в проекте QuickTest и из контекстного меню или контекстного меню выберите Добавить ссылку. Откроется диалоговое окно «Диспетчер ссылок». На левой панели разверните «Проекты» и выберите «Решение». На средней панели установите флажок рядом с QuickDate и нажмите кнопку ОК. Добавлена ​​ссылка на проект QuickDate.
Выберите узел Зависимости в проекте QuickTest и из контекстного меню или контекстного меню выберите Добавить ссылку на проект. Откроется диалоговое окно «Диспетчер ссылок». На левой панели разверните «Проекты» и выберите «Решение». На средней панели установите флажок рядом с QuickDate и нажмите кнопку ОК. Добавлена ​​ссылка на проект QuickDate.
В обозревателе решений щелкните правой кнопкой мыши узел «Ссылки» проекта QuickTest и выберите «Добавить ссылку» в контекстном меню. В диалоговом окне «Диспетчер ссылок» в разделе «Проекты» установите флажок рядом с QuickDate и нажмите кнопку «ОК». Ссылка на проект QuickDate отображается под проектом QuickTest в обозревателе решений.

Добавить тестовый код

 Скриншот, показывающий код C Sharp.

Под частью кода появляется красная волнистая линия. Эту ошибку можно исправить, сделав тестовый проект дружественной сборкой проекта QuickDate. В файле Calendar.cs добавьте следующий оператор using и атрибут InternalsVisibleToAttribute в начало файла, чтобы устранить ошибку в тестовом проекте. Код Calendar.cs должен выглядеть следующим образом:

Запустите модульный тест

Снимок экрана, показывающий обозреватель тестов с пройденным тестом.

Если вы хотите проверить, работает ли модульный тест, выберите «Тест» > «Выполнить» > «Все тесты» в строке меню. Откроется окно под названием Test Explorer, и вы должны увидеть, что тест TestGetCurrentDate пройден. Чтобы убедиться, что ваш модульный тест работает, выберите «Тест» > «Выполнить все тесты» в строке меню. Откроется окно обозревателя тестов, и вы должны увидеть, что тест TestGetCurrentDate пройден.
Если обозреватель тестов не открывается автоматически, откройте его, выбрав «Тест» > «Windows» > «Обозреватель тестов» в строке меню. Если обозреватель тестов не открывается автоматически, откройте его, выбрав «Тест» > «Обозреватель тестов» в строке меню.

Свойства проекта

Строка в файле Calendar.cs, содержащая атрибут InternalsVisibleToAttribute, ссылается на имя сборки или имя файла проекта QuickTest. Имя сборки может не всегда совпадать с именем проекта. Чтобы найти имя сборки проекта, используйте свойства проекта. Страницы свойств содержат различные настройки проекта. В обозревателе решений щелкните правой кнопкой мыши проект QuickTest и выберите «Свойства» или выберите проект и нажмите клавиши ALT + ВВОД. На вкладке «Приложение» открываются страницы свойств для проекта. Имя сборки проекта QuickTest действительно QuickTest. Если хотите, вы можете изменить имя здесь. При сборке тестового проекта имя результирующего двоичного файла меняется с QuickTest.dll на .dll.  Скриншот со свойствами проекта.

Изучите некоторые другие вкладки страниц свойств проекта, такие как «Сборка» и «Отладка». Эти вкладки различаются для разных типов проектов. фиктивное решение
шаги в этом примере будут использовать следующую структуру проекта в качестве демонстрации
и мы намерены экспортировать его в репозиторий «GHTuts» [обратите внимание, что репозиторий еще не существует на github], но оставить «SensitiveProject» без публикации, так как он содержит некоторые пароли, ключи и т. д..

Перейдите в локальную папку решения и создайте новый файл с именем «.gitignore.txt» [Примечание] этот шаг важен, только если в вашем проекте есть конфиденциальная информация, в противном случае позвольте Visual Studio создать ее для вас Теперь откройте файл «.gitignore.txt» и вставьте его в него, это шаблон для игнорирования обычных файлов Visual Studio (см. ссылки ниже) введите здесь описание изображения
введите здесь описание изображения
Щелкните правой кнопкой мыши на решении и выберите «Добавить решение в систему управления версиями». [Примечание] вам может быть предложено сохранить решение, прежде чем продолжить введите здесь описание изображения
Теперь у вас есть «ЛОКАЛЬНЫЙ» репозиторий git на вашем компьютере, из которого VS будет читать, но без репозитория github, и вы увидите маленький синий значок замка рядом с каждым файлом в решении, которое было добавлено в git и красный кружок у игнорируемого проекта
[Примечание]
дополнительную информацию о файле .gitignore см. по этим ссылкам Перейдите на вкладку «Team Explorer», а затем «Синхронизировать» введите здесь описание изображения
Теперь мы создаем репозиторий из vs в github вот так, нажимаем кнопку «Начать» введите здесь описание изображения
Теперь заполните свою информацию в github для нового репозитория, затем нажмите «Опубликовать» В этой статье вы узнаете, как создавать и использовать проекты Visual Studio с нуля для хранения артефактов, необходимых для создания приложений. Если вы не знакомы с проектами в Visual Studio, см. этот обзор проектов и решений. Чтобы узнать, как быстро создать проект из шаблона, см. раздел Создание проекта из шаблона. Проекты содержат элементы, необходимые для создания приложения в Visual Studio, такие как файлы исходного кода, растровые изображения, значки и ссылки на компоненты и службы. Когда вы создаете новый проект, Visual Studio создает решение, содержащее проект.Затем вы можете добавить в решение другие новые или существующие проекты, если хотите. Вы также можете создавать пустые или пустые решения. Решения также могут содержать файлы, не связанные с каким-либо конкретным проектом. «Создать» > «Проект из существующего кода». В мастере создания проекта из существующих файлов кода выберите нужный тип проекта в поле Какой тип проекта вы хотите создать? раскрывающемся списке, а затем нажмите кнопку Далее. В мастере перейдите к расположению файлов и введите имя нового проекта в поле Имя. Когда вы закончите, нажмите кнопку Готово.

Добавить файлы в решение

Если у вас есть файл, относящийся к нескольким проектам, например файл сведений для решения, или другие файлы, которые логически принадлежат уровню решения, а не конкретному проекту, вы можете добавить их в само решение. Чтобы добавить элемент в решение, в контекстном меню (щелкните правой кнопкой мыши) узла решения в обозревателе решений выберите Добавить > Новый элемент или Добавить > Существующий элемент. Файл решения — это структура для организации проектов в Visual Studio. Он содержит состояние этой информации в двух файлах: .sln (текстовый, общий) и .suo (двоичный, скрытый, пользовательский опции) файл. Таким образом, решение — это не то, что нужно копировать и переименовывать; вместо этого лучше создать новое решение, а затем добавить в него существующие элементы.

Создать пустые решения

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

Чтобы создать пустое решение

На левой панели (Шаблоны) выберите Другие типы проектов > Решения Visual Studio в расширенном списке. На средней панели выберите Пустое решение. Введите значения имени и местоположения для своего решения, а затем нажмите кнопку ОК. На странице «Создание нового проекта» введите решение в поле поиска. Выберите шаблон Пустое решение и нажмите кнопку Далее. Введите значения «Имя» и «Расположение» для своего решения, а затем нажмите «Создать». После создания пустого решения вы можете добавить в него новые или существующие проекты или элементы, выбрав «Добавить новый элемент» или «Добавить существующий элемент» в меню «Проект». Как упоминалось ранее, вы также можете открывать файлы кода без необходимости в проекте или решении.Чтобы узнать о такой разработке кода, см. раздел Разработка кода в Visual Studio без проектов или решений.

Создать временный проект

Чтобы создать временный проект, сначала выберите Инструменты > Параметры > Проекты и решения > Общие и снимите флажок Сохранять новые проекты при создании. Затем откройте диалоговое окно «Новый проект», как обычно.

Удалить решение, проект или элемент

Вы можете использовать контекстное меню, вызываемое правой кнопкой мыши, для удаления решений, проектов или элементов в Visual Studio, но при этом они удаляются только из текущего решения или проекта. Чтобы безвозвратно удалить решение или другие компоненты из вашей системы, используйте Проводник в Windows, чтобы удалить папку, содержащую файлы решений .sln и .suo. (Прежде чем удалять решение, вы можете сделать резервную копию своих проектов и файлов на случай, если они понадобятся вам снова.) Файл .suo — это скрытый файл, который не отображается в настройках проводника по умолчанию. Чтобы отобразить скрытые файлы, в меню «Вид» проводника установите флажок «Скрытые элементы».

Удалить решение навсегда

  • Не удалось создать буфер изображений Adobe Premiere
  • Расчет надбавки в excel в зависимости от выполнения плана
  • Программа для создания 3d туров
  • Как включить конверт fl studio 20
  • Как разбить текст на таблицу в Word

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

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

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

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

Что же тогда происходит с ProjectGUID?

Не забудьте удалить файлы svn, если они у вас есть (я сделал!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…

GUID проекта обновляется VS автоматически, если в том же решении существует другой проект с таким же GUID.

Я пытаюсь это сделать, но он не переименовывает пространства имен приложений. Не то, что я искал.

GUID проекта НЕ ОБНОВЛЯЕТСЯ АВТОМАТИЧЕСКИ VS in Community 2017 Версия 15.8.4. На самом деле, как это могло быть, если ваш AssemblyInfo.cs находится в управлении исходным кодом?

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

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

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

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

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

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

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

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

ИМО, лучший ответ.
В VS2017 шаблон экспорта находился в пункте меню верхнего уровня Project.
Это невероятно полезно, как я не знал об этом раньше? Благодарность!

Это должен быть выбранный ответ. Очень просто! Этот процесс также должен был скопировать его в вашу папку Templates \ ProjectTemplates, просто убедитесь. Мне пришлось перезапустить Visual Studio, чтобы увидеть это в диалоговом окне создания проекта.

Когда пришло время импортировать шаблон для создания нового проекта, я не мог понять, как это сделать. Оказалось, что мне пришлось использовать панель поиска в диалоговом окне «Новый проект», чтобы найти шаблон.

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

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

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

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

Крайне НЕ РЕКОМЕНДУЕТСЯ копировать проекты вообще, потому что некоторые файлы конфигурации сформированы внутри, например .csproj, .vspscc и т. Д., Могут (и, скорее всего, будут) указывать на ссылки, которые относятся к местоположению предыдущих решений и другим путям / местоположениям в системе или TFS. Если вы не являетесь экспертом в чтении этих файлов и исправлении ссылок, не пытайтесь копировать проекты.

Вы можете создать скелетный проект того же типа, который собираетесь скопировать, при этом будут созданы правильные файлы .csproj, .vspscc . Теперь вы можете свободно копировать файлы классов, скрипты и другой контент из предыдущего проекта, поскольку они не повлияют. Это обеспечит плавную сборку и контроль версий (если вы захотите в этом заинтересоваться)

Сказав все это, позвольте мне дать вам метод пошагового копирования проекта:

  1. В обозревателе решений перейдите к проекту, который хотите скопировать, и щелкните правой кнопкой мыши .
  2. Теперь выберите « Открыть папку в проводнике » (если у вас есть решение, сопоставленное с локальным путем на вашем диске).
  3. Выберите проекты, которые вы хотите реплицировать как целые папки (вместе со всеми зависимостями, файл bin .vspscc, файл .csproj)
  4. Вставьте их в желаемое место (это может быть та же папка решения или даже другая папка решения. Если она находится в той же папке решения, вам потребуется переименовать ее, а также .csproj и другие внутренние файлы на новое имя. ).
  5. Не возвращайтесь в Visual Studio, щелкните правой кнопкой мыши «Решение»> «Добавить»> «Существующий проект» .
  6. Найдите и выберите файл проекта (файл .csproj) в том месте, где вы его разместили, и выберите « открыть ».
  7. Теперь этот файл появится в обозревателе решений, чтобы вы могли работать.

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

Обновление: лучший ответ по состоянию на 2019 год — это тот, который ниже @Shane. Создание шаблонов VS — идеальный способ клонировать проекты без проблем со ссылками.

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

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

Зачем использовать виртуальные среды в науке о данных?

Управление зависимостями играет важную роль для разработчиков пакетов и ПО. Но как насчет специалистов по науке о данных, которые не занимаются развертыванием PyPI или conda-forge?

Виртуальные среды помогают исправлять ошибки

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

Пакеты не всегда обновляются одновременно, а многие из них несовместимы друг с другом или даже с используемой версией Python или Anaconda. Нет никаких гарантий, что пакеты из разных каналов в conda не будут конфликтовать. При загрузке всех элементов в одну большую среду возникновение противоречивых зависимостей неизбежно. Не говоря уже о различных инструментах, таких как pip, pipx, conda, poetry, hatch, pipenv, pyenv, virtualenv, pyvenv, pyenv-virtualenv, virtualenvwrapper, pyenv-virtualenvwrapper и venv… которые, несмотря на похожие названия, зачастую даже не совместимы друг с другом.

Поломка проекта при использовании Anaconda — вопрос времени

Еще одна причина не использовать anaconda вне контейнера — вы не знаете, что именно запускаете. В некоторых случаях сценарий активации anaconda настолько сильно искажает очистку среды системы pre-pyenv, что единственный способ быстро решить эту проблему — добавить HOST=$(hostname) к .zshrc.

Виртуальные среды способствуют воспроизводимости результатов в науке о данных

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

pyenv в сочетании с pyenv-virtualenv для безопасного управления установками python

Здесь можно найти краткое руководство по настройке системы с помощью pyenv и pyenv-virtualenv. Преимущества такого способа управления:

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

Для защиты важных файлов перед установкой новой системы с помощью этого метода также рекомендую использовать Arq Cloud Backup, который работает аналогично git и почти полностью автоматизирован.

Интегрированная среда разработки с pyenv и Visual Studio Code

После завершения установки pyenv можно приступать к созданию рабочих процессов в виртуальных средах. Рассмотрим создание проекта с дистрибутивом Anaconda, чтобы узнать, как можно использовать Visual Studio Code для разработки Jupyter notebooks и их конвертирования в сценарии .py.

У каждого проекта должна быть своя директория, а у каждой директории — своя виртуальная среда. Эта структура выполняет две важные функции:

  1. Обеспечивает правильную организацию всех элементов, что упрощает разделение проектов, управление зависимостями и исключает лишние элементы.
  2. Позволяет создать отдельный .python-version file для каждой директории (и, следовательно, для каждого проекта). Это означает, что pyenv-virtualenv может автоматически переключаться на соответствующую среду при смене директории.

TL;DR-версия для установки проекта:

  1. Создайте папку проекта и перейдите ( cd ) в нее.
  2. Установите проект Python с помощью pyenv local $PYTHON_VERSION .
  3. Запустите эту команду для создания виртуальной среды: pyenv virtualenv anaconda3–2019.10 venv-cool_project . Если версия Python не указана, то среда будет использовать ту, которая работает локально на данный момент.
  4. Установите новую среду в качестве локального Python-проекта с помощью команды pyenv local с именем venv и активируйте ее с помощью conda activate venv-cool_project .

При запуске приведенного ниже однострочника при каждом создании нового проекта вы получаете возможность входить и выходить ( cd ) из директорий, а виртуальные среды будут автоматически активироваться и деактивироваться (вам также нужно изменить имя среды и интерпретатор Python).

Ниже представлен GitHub gist со сценарием, который сделает всю работу за вас. Загрузите его (потребуется запустить chmod +x newproj.sh , чтобы убедиться, что он выполняемый). Затем просто используйте его для создания новых проектов, передав ему нужную версию Python и имя проекта:

#!/bin/sh# Usage: $ sh newproj.sh pythonversion projectnamemkdir $2 && cd $2 && pyenv local $1 && pyenv virtualenv venv-$2 && pyenv local venv-$2 && pyenv activate venv-$2

Visual Studio Code в сочетании с Python и Jupyter

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

Для начала воспользуемся brew cask install visual-studio-code .

Затем переходим к настройкам VS Code:

  • Убедитесь, что терминал системы синхронизирован с терминалом приложения: VS Code должен использовать приложение терминала вашей ОС с переменной «External».
  • Включите встроенную функцию терминала, чтобы использовать эмулятор в приложении VSCode.
  • Откройте палитру команд с помощью ⌘+⇧+P и выберите Shell Command: Install ‘code’ command in PATH . Таким образом вы запустите VS Code из внешнего терминала: code — запускает приложение, code. открывает текущую рабочую директорию, а code path/to/file/or/dir открывает определённый файл или директорию.
  • Установите расширение Python для VS Code. Таким образом, при сохранении файла с расширением Python редактор будет знать, что нужно интерпретироваться в контексте Python.

При входе и выходе из директорий проектов в интегрированном терминале интерпретатор python автоматически определяет venvs при наличии файла .python-version (файл должен существовать при правильном использовании pyenv-virtualenv).

Чтобы указать приложению, какой интерпретатор Python нужно использовать, нажмите на имя интерпретатора Python на нижней панели инструментов или откройте палитру команд и введите Python: Select Interpreter .

Находясь в терминале, также можно создавать и активировать новые venvs привычным образом.

Создание Jupyter notebooks

Чтобы воспользоваться ноутбуками, просто откройте файл .ipynb или выберите Python: Create New Blank Jupyter Notebook из палитры команд, находясь в среде conda. Теперь можно запускать ячейки и создавать ноутбуки в обычном режиме, но с дополнительным преимуществом, которое не зависит от веб-браузера.

Ноутбук также можно конвертировать в сценарий Python одним щелчком мыши или с помощью Python: Convert to python script :

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

Создавайте великолепные проекты с уверенностью

Мы рассмотрели управление пакетами в среде разработки, простое превращение conda envs в файлы requirements.txt и более эффективную очистку ноутбуков для создания работоспособных сценариев. VS Code предлагает еще больше инструментов, таких как подсветка синтаксиса, линтинг, интеграция тестов и интерфейсы с GitHub, Docker, различными базами данных и многим другим для активизации проектов. Добавьте эти инструменты в рабочий процесс науки о данных, чтобы стать более эффективным программистом и разработчиком!

  • Автоматизация работы с Python
  • Как создавать веб-сокеты в Python
  • Элегантное ООП в Python

Настройка и сборка с помощью предустановок CMake в Visual Studio

CMake поддерживает два файла — CMakePresets.json и CMakeUserPresets.json , — которые позволяют пользователям указывать общие параметры настройки, сборки и тестирования, а также делиться ими с другими пользователями. Эти файлы можно использовать для управления CMake в Visual Studio, в Visual Studio Code, в конвейере непрерывной интеграции (CI) и из командной строки.

CMakePresets.json предназначен для сохранения сборок на уровне проекта. CMakeUserPresets.json предназначен для разработчиков, позволяя им сохранять собственные локальные сборки. Оба файла поддерживаются в Visual Studio 2019 версии 16.10 или более поздней.

В этой статье представлены сведения об интеграции CMakePresets.json в Visual Studio. Ниже приведены полезные ссылки.

  • Дополнительные сведения о формате CMakePresets.json см. в официальной документации по CMake.
  • Дополнительные сведения о картах поставщиков Майкрософт и расширении макросов см. в разделе Карты поставщиков Майкрософт CMakePresets.json и CMakeUserPresets.json .
  • Дополнительные сведения об использовании CMakePresets.json в Visual Studio Code см. в статье Настройка и сборка с помощью предварительных установок CMake.

CMakePresets.json это рекомендуемая альтернатива CMakeSettings.json . Visual Studio никогда не считывает оба CMakePresets.json и CMakeSettings.json одновременно. Сведения о включении или отключении интеграции CMakePresets.json в Visual Studio см в разделе Включение интеграции CMakePresets.json в Visual Studio 2019.

Поддерживаемые версии CMake и CMakePresets.json

Поддерживаемые CMakePresets.json версии и CMakeUserPresets.json версии схемы зависят от версии Visual Studio:

  • Visual Studio 2019 версии 16.10 и более поздних версий поддерживают схемы 2 и 3.
  • Visual Studio 2022 версии 17.4( предварительная версия 1) добавляет поддержку схемы версии 4.
  • Visual Studio 2022 версии 17.5( предварительная версия 1) добавляет поддержку схемы версии 5.

Вы можете обновить версию, изменив «version» поле в корневом объекте. Пример и дополнительные сведения см. в разделе Формат CMakePresets.json .

CMake версии 3.20 или более поздней требуется при вызове CMake из CMakePresets.json командной строки. Однако Visual Studio считывает и вычисляет CMakePresets.json и CMakeUserPresets.json , и не вызывает CMake напрямую с помощью параметра —preset . Таким образом, CMake версии 3.20 или выше не является обязательным при сборке с использованием CMakePresets.json в Visual Studio.

Рекомендуется использовать по крайней мере CMake версии 3.14 или более поздней.

Включение CMakePresets.json интеграции в Visual Studio

CMakePresets.json Интеграция не включена по умолчанию в Visual Studio. Его можно включить в разделе «Параметры>CMake>«:>

Screenshot showing

Этот экран доступен в меню Visual Studio 2022: сервис > параметры > CMake > Общие. Параметр находится в разделе конфигурации файла CMake.

Чтобы активировать интеграцию, закройте и снова откройте папку в Visual Studio.

В некоторых более старых версиях Visual Studio> параметры CMake Для параметров>CMake> есть только один вариант для включения CMakePresets.json интеграции:

Screenshot of an older version of Visual Studio. There is a checkbox labeled

В следующей таблице указывается, когда CMakePresets.json вместо CMakeSettings.json использования для диска конфигурации CMake и сборки в Visual Studio 2022 и Visual Studio 2019 версии 16.10 и более поздних версий. Если файл конфигурации отсутствует, используются стандартные предустановки настройки.

В таблице «Сервис>Параметры включены» означает выбор параметра Использование CMakeePresets.json для настройки, создания и тестирования CMake в меню Сервис>Параметры>CMake>Общие.

Файлы конфигурации Параметры инструментов > отключены Параметры инструментов > , включенные
Файл конфигурации отсутствует CMakeSettings.json CMakePresets.json
CMakeSettings.json присутствует CMakeSettings.json CMakePresets.json
CMakePresets.json присутствует CMakePresets.json CMakePresets.json
Имеются оба файла конфигурации CMakePresets.json CMakePresets.json

Изменение автоматической настройки и уведомлений кэша

По умолчанию Visual Studio автоматически вызывает configure при каждом изменении активной целевой системы или предустановок настройки. Это поведение можно изменить, выбрав Никогда не запускать шаг настройки автоматически в меню Сервис>Параметры>CMake>Общие. Можно также отключить все уведомления кэша CMake (полоски золотистого цвета), сняв флажок Показать уведомления кэша CMake.

Настройка предустановок настройки по умолчанию

Если файл отсутствует или файл не CMakePresets.json существует, или CMakePresets.json если это CMakeUserPresets.json недопустимо, Visual Studio возвращается на следующие предустановки по умолчанию: CMakeUserPresets.json

Пример для Windows

< "name": "windows-default", "displayName": "Windows x64 Debug", "description": "Sets Ninja generator, compilers, x64 architecture, build and install directory, debug build type", "generator": "Ninja", "binaryDir": "$/out/build/$", "architecture": < "value": "x64", "strategy": "external" >, "cacheVariables": < "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "$/out/install/$" >, "vendor": < "microsoft.com/VisualStudioSettings/CMake/1.0": < "hostOS": [ "Windows" ] >> >, 

Пример Linux

< "name": "linux-default", "displayName": "Linux Debug", "description": "Sets Ninja generator, compilers, build and install directory, debug build type", "generator": "Ninja", "binaryDir": "$/out/build/$", "cacheVariables": < "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "$/out/install/$" >, "vendor": < "microsoft.com/VisualStudioSettings/CMake/1.0": < "hostOS": [ "Linux" ] >, "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": < "sourceDir": "$env/.vs/$ms" > > > 

При попытке открыть или изменить файл CMakePresets.json , который не существует, Visual Studio автоматически создаст файл CMakePresets.json с предустановками настройки по умолчанию в корне проекта.

Настройка и сборка

На панели инструментов Visual Studio есть раскрывающийся список для целевых систем, настройка предустановок и предустановок сборки при CMakePresets.json включении интеграции:

Screenshot showing the dropdowns for target system set to Local Machine, configuration set to windows-arm64, and build preset set to default.

Выбор целевой системы

В раскрывающемся списке слева указывается активная целевая система. Это система, в которой CMake будет вызываться для настройки и сборки проекта. В этом раскрывающемся списке отображается локальный компьютер, все SSH-подключения в диспетчере подключений по имени узла, а также все установки подсистемы Windows для Linux (WSL), которые может найти Visual Studio:

Screenshot of the Target System dropdown list

Раскрывающийся список содержит несколько записей, включая локальный компьютер, IP-адрес 192.168.0.5, WSL: ubuntu2004, WSL: debian и управление Подключение ions.

В предыдущем примере:

  • 192.168.0.5 — это удаленная система Linux, добавленная в диспетчер подключений.
  • ubuntu2004 и debian — это установки WSL.

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

Выбор предустановки настройки

В раскрывающемся списке посередине можно выбрать активную предустановку настройки. Это значение configurePreset , которое будет использоваться при вызове CMake для создания системы сборки проекта. В этом раскрывающемся списке приведены нескрытые предустановки настройки, определенные в файлах CMakePresets.json и CMakeUserPresets.json .

Visual Studio использует значение hostOS в карте поставщика Microsoft Visual Studio Параметры, чтобы скрыть настройки предустановок, которые не применяются к активной целевой системе. Дополнительные сведения см. в записи hostOS в таблице в разделе Карта поставщика параметров Visual Studio.

Выберите элемент Управление конфигурациями, чтобы открыть файл CMakePresets.json , расположенный в корне проекта. Если CMakePresets.json не существует, он будет создан.

Выбор предустановки сборки

В раскрывающемся списке справа указывается активная предустановка сборки. Это значение buildPreset , которое будет использоваться при вызове CMake для сборки проекта. В этом раскрывающемся списке приведены нескрытые предустановки сборки, определенные в файлах CMakePresets.json и CMakeUserPresets.json .

Все предустановки сборки должны указывать связанное значение configurePreset . Visual Studio скрывает предустановки сборки, которые не применяются к активной предустановке настройки. Дополнительные сведения см. в списке предустановок сборки.

Если с активным предустановкой настройки нет предустановок сборки, Visual Studio перечисляет предустановку сборки по умолчанию. Предустановка сборки по умолчанию эквивалентна передаче cmake —build без других аргументов из командной строки.

Конфигурирование

Visual Studio автоматически пытается настроить проект, когда обнаружит, что кэш CMake устарел. Чтобы вручную вызвать конфигурацию, выберите «Настройка> проекта»> в главном меню. Это эквивалентно выполнению cmake —preset в командной строке, где — имя активной предустановки конфигурации.

Сведения об отключении автоматического создания кэша см. в разделе Автоматическая настройка и уведомления кэша.

Сборка

Чтобы выполнить сборку всего проекта, выберите в главном меню пункт Сборка>Собрать все. Это эквивалентно выполнению cmake —build —preset в командной строке, где — имя активной предустановки сборки.

Чтобы создать один целевой объект, переключитесь на представление целевых объектов CMake в Обозревателе решений. Затем щелкните правой кнопкой мыши любой целевой объект и выберите в контекстном меню пункт Сборка.

Visual Studio 2019 не поддерживает параметр buildPresets.targets для создания подмножества целевых объектов, указанных в CMakePresets.json .

Запуск CTest

CMakePresets.json поддерживает два параметра меню в Visual Studio 2019:

  • Тестовый>запуск CTests для проекта вызывает CTest и выполняет все тесты, связанные с активным набором настройки и предустановкой сборки, без других аргументов, передаваемых в CTest.
  • Предварительная>настройка тестового запуска для расширяется, чтобы отобразить все предустановки теста, связанные с активным набором настройки. Выбор одной предустановки теста аналогичен запуску ctest —preset из командной строки, где — имя выбранной предустановки теста. Этот параметр будет недоступен, если для активной предустановки конфигурации не определены предустановки тестов.

В Visual Studio 2019 обозреватель тестов не интегрирован с CMakePresets.json .

Добавление новых предустановок

В Visual Studio 2019 все команды и предустановленные шаблоны изменяют CMakePresets.json . Можно добавлять новые предустановки уровня пользователя путем непосредственного редактирования файла CMakeUserPresets.json .

Используйте косую черту ( / ) для путей в CMakePresets.json и CMakeUserPresets.json .

Добавление новых предустановок настройки

Чтобы добавить новую предустановку настройки в файл CMakePresets.json , в Обозревателе решений щелкните правой кнопкой мыши CMakePresets.json в представлении папок и в контекстном меню выберите Добавить конфигурацию. Откроется диалоговое окно для выбора шаблона предустановки настройки:

Screenshot of the Add Configure Preset to the JSON file dialog. It contains entries such as Linux Debug, macOS Debug, x64 Debug, and so on.

Выберите шаблон Отладка Windows x64 для настройки в системах Windows. Выберите шаблон Отладка Linux для настройки в WSL и удаленных системах Linux. Дополнительные сведения о редактировании CMakePresets.json см. в разделе Редактирование предустановок.

Выбранный шаблон будет добавлен в файл CMakePresets.json , если он существует. Если нет, шаблон будет скопирован в новый файл CMakePresets.json .

Добавление новых предустановок сборки и предустановок тестов

В Visual Studio 2019 нет шаблонов для новых предустановок сборки и предустановок тестов. Вы можете добавлять предустановки сборок и тестов путем непосредственного редактирования CMakePresets.json . Дополнительные сведения см. в разделе со списком предустановок сборки, списком предустановок тестов или с примером файла CMakePresets.json .

Редактирование предустановок

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

Выбор компиляторов

Компиляторы C и C++ можно задавать с помощью cacheVariables.CMAKE_C_COMPILER и cacheVariables.CMAKE_CXX_COMPILER в предустановке настройки. Это эквивалентно передаче -D CMAKE_C_COMPILER= и -D CMAKE_CXX_COMPILER= в CMake из командной строки. Дополнительные сведения см. в разделе CMAKE__COMPILER .

Используйте следующие примеры для сборки с помощью cl.exe и clang-cl.exe из Visual Studio. Для сборки с помощью clang-cl должны быть установлены средства C++ Clang для компонентов Windows.

Сборка с помощью cl.exe :

"cacheVariables": < "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "$/out/install/$", "CMAKE_C_COMPILER": "cl", "CMAKE_CXX_COMPILER": "cl" >, 

Сборка с помощью clang :

"cacheVariables": < "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "$/out/install/$", "CMAKE_C_COMPILER": "clang-cl", "CMAKE_CXX_COMPILER": "clang-cl" >, "vendor": < "microsoft.com/VisualStudioSettings/CMake/1.0": < "intelliSenseMode": "windows-clang-x64" >> 

Если вы используете либо Visual Studio 16 2019 Visual Studio 17 2022 в качестве генератора, можно использовать toolset предустановку настройки, чтобы указать ClangCL набор инструментов:

"cacheVariables": < "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "$/out/install/$", >, "toolset": "ClangCL", "vendor": < "microsoft.com/VisualStudioSettings/CMake/1.0": < "intelliSenseMode": "windows-clang-x64" >> 

Дополнительные сведения о генераторах, поддерживающих спецификацию toolset , см CMAKE_GENERATOR_TOOLSET . в документации по CMake.

В Visual Studio 2019 необходимо явно указать режим IntelliSense Clang во время сборки с помощью clang или clang-cl .

Сведения о воспроизведении этих сборок вне Visual Studio см. в разделе Запуск CMake из командной строки или конвейера непрерывной интеграции (CI).

Чтобы выполнить сборку в Linux или без набора инструментов Visual C++, укажите имя компилятора в экземпляре PATH или переменную среды, результатом которой является полный путь компилятора. Не рекомендуется использовать полные пути, чтобы файл мог оставаться общим. Предустановка, которая выполняет сборку с помощью GCC версии 8, может выглядеть следующим образом:

"cacheVariables": < "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "$/out/install/$", "CMAKE_C_COMPILER": "gcc-8", "CMAKE_CXX_COMPILER": "g++-8" >, 

Можно также задать компиляторы с помощью файла цепочки инструментов CMake. Файлы цепочки инструментов можно задать с помощью cacheVariables.CMAKE_TOOLCHAIN_FILE , что эквивалентно передаче -D CMAKE_TOOLCHAIN_FILE= в CMake из командной строки. Файл цепочки инструментов CMake чаще всего используется для перекрестной компиляции. Дополнительные сведения о разработке файлов цепочки инструментов CMake см. в разделе, посвященном cmake-toolchains.

Выбор генератора

В шаблонах конфигурации Windows и Linux в качестве генератора по умолчанию указывается Ninja. Другими распространенными генераторами являются генераторы Visual Studio в Windows и Unix Makefiles в Linux и macOS. Можно указать новый генератор с параметром generator в предустановке настройки. Это эквивалентно передаче -G в CMake из командной строки.

Задайте для architecture.strategy и toolset.strategy значение set при сборке с помощью генератора Visual Studio. Дополнительные сведения см. в разделе, посвященном cmake-generators.

Выбор типа конфигурации

Задать тип конфигурации ( Debug или Release ) для генераторов отдельной конфигурации можно с помощью cacheVariables.CMAKE_BUILD_TYPE . Это эквивалентно передаче -D CMAKE_BUILD_TYPE= в CMake из командной строки. Дополнительные сведения см. в разделе CMAKE_BUILD_TYPE .

Выберите целевую архитектуру и архитектуру узла при построении с помощью набора инструментов Visual C++.

Целевую архитектуру (x64, Win32, ARM64 или ARM) можно задать с помощью architecture.value . Это эквивалентно передаче -A в CMake из командной строки. Дополнительные сведения см. в разделе, посвященном выбору платформы.

В настоящее время генераторам Visual Studio необходим синтаксис Win32, а генераторам командной строки (например, Ninja) при сборке для x86 требуется синтаксис x86.

Архитектуру узла (x64 или x86) и набор инструментов можно задать с помощью toolset.value . Это эквивалентно передаче -T в CMake из командной строки. Дополнительные сведения см. в разделе, посвященном выбору набора инструментов.

Значения architecture.strategy и toolset.strategy указывают CMake, как обрабатывать поля архитектуры и набора инструментов. set означает, что CMake задает соответствующее значение и external означает, что CMake не будет задавать соответствующее значение.

Рекомендуется использовать set генераторы интегрированной среды разработки, такие как генератор Visual Studio. Используйте external с генераторами командной строки, такими как Ninja. Эти значения позволяют таким поставщикам, как Visual Studio, создавать исходные требуемые среды перед вызовом CMake. Дополнительные сведения о полях архитектуры и набора инструментов см. в разделе, посвященном предустановкам настройки.

Если вы не хотите определять среду таким образом, вы можете задать для architecture.strategy значение external , а для architecture.value — unspecified . Определение среды может не требоваться по следующим причинам:

  • Используется другой набор инструментов вместо MSVC.
  • Используется особая цепочка инструментов, например в сценариях со встроенными решениями.
  • Конкретная среда для сборки не требуется.

Полный список генераторов IDE, поддерживающих поле архитектуры, см. в разделе CMAKE_GENERATOR_PLATFORM . Полный список генераторов IDE, поддерживающих поле набора инструментов, см. в разделе CMAKE_GENERATOR_TOOLSET .

Используйте приведенные ниже примеры для работы в ARM64 с помощью генератора Ninja или Win32 (x86) с помощью генератора Visual Studio 2019 версии 16.

"generator": "Ninja", "architecture": < "strategy": "external", "value": "arm64" >, "generator": "Visual Studio 16 2019", "architecture": < "strategy": "set", "value": "Win32" >, 

Задание переменных среды и ссылка на них

Переменные среды можно задать с помощью схемы среды. Переменные среды наследуются по полю inherits , но при необходимости их можно переопределить.

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

Переменные среды, заданные в предустановке настройки, также автоматически передаются в соответствующие предустановки сборки и тестов, только если для параметра inheritConfigureEnvironment не задано значение false . Дополнительные сведения см. в списке предустановок настройки.

Ссылаться на переменные среды можно с помощью синтаксиса $env> и $penv> . Дополнительные сведения см. в разделе, посвященном расширению макросов.

Настройка IntelliSense для перекрестной компиляции

По умолчанию Visual Studio использует режим IntelliSense, соответствующий указанным набору инструментов и целевой архитектуре. При перекрестной компиляции может потребоваться вручную указать правильный режим IntelliSense с помощью параметра intelliSenseMode в карте поставщика параметров Visual Studio. Дополнительные сведения см. в записи intelliSenseMode в таблице в разделе Карта поставщика параметров Visual Studio.

Настройка и сборка в удаленной системе или подсистеме Windows для Linux

Благодаря поддержке CMakePresets.json в Visual Studio можно легко настраивать проекты и выполнять их сборку в Windows, WSL и удаленных системах. Действия по настройке и сборке проекта в Windows, удаленной системе или WSL одинаковые. Однако несколько вариантов поведения характерны именно для удаленной разработки.

Поведение $ в сценариях удаленной копии

В локальных сценариях (включая WSL1) $ оценивает путь к исходному каталогу проекта, открытому в Visual Studio. В сценариях удаленной копии $ оценивает путь к исходному каталогу проекта в целевой системе, а не к исходному каталогу проекта на локальном компьютере.

Исходный каталог проекта в целевой системе определяется значением sourceDir в карте поставщика удаленных параметров Visual Studio (по умолчанию — $env/.vs/$ms ). Дополнительные сведения см. в записи sourceDir в таблице в разделе Карта поставщика параметров Visual Studio.

Локальная папка для удаленного вывода

В сценариях удаленной копии требуется локальный каталог для копирования некоторых удаленных файлов, таких как файлы ответов API файлов CMake, или файлы сборки, если параметру copyBuildOutput в карте поставщика удаленных параметров Visual Studio присвоено значение true . Эти файлы автоматически копируются в /out//build/$ .

Вызов одной и той же предустановки настройки для Windows и WSL1

Если вы попытаетесь использовать одну и ту же предустановку в Windows и WSL1, появится сообщение об ошибке. Windows и WSL1 применяют файловую систему Windows, поэтому CMake попытается использовать один и тот же выходной каталог ( binaryDir ) для деревьев сборки Windows и WSL1.

Если вы хотите использовать одну и ту же предустановку с Windows и набором инструментов WSL1, создайте вторую предустановку настройки, которая наследует исходную предустановку и задает новое значение binaryDir . В следующем примере windows-preset можно использовать в Windows, а base-preset можно использовать в WSL1:

< "name": "windows-preset", "inherits": "base-preset", "binaryDir": "$/out/build/$", "vendor": < "microsoft.com/VisualStudioSettings/CMake/1.0": < "hostOS": "Windows" >> > 

В Visual Studio 2019 поддерживается только набор инструментов WSL1. Это поведение будет наблюдаться при каждом вызове configure в Windows и WSL.

Включение интеграции vcpkg

Vcpkg помогает управлять библиотеками C и C++ в Windows, Linux и macOS. Чтобы включить интеграцию vcpkg, в CMake следует передать файл цепочки инструментов vcpkg ( vcpkg.cmake ). Дополнительные сведения см. в документации по vcpkg.

Visual Studio больше не передает файл цепочки инструментов vcpkg в CMake автоматически при включенной интеграции CMakePresets.json . Это изменение позволяет отключить поведение, соответствующее Visual Studio, и убедиться, что вы можете воспроизвести сборку из командной строки.

Вместо этого задайте путь к vcpkg.cmake с помощью переменной среды VCPKG_ROOT в CMakePresets.json :

"cacheVariables": < "CMAKE_TOOLCHAIN_FILE": < "value": "$env/scripts/buildsystems/vcpkg.cmake", "type": "FILEPATH" > >, 

Для VCPKG_ROOT следует задать корневой каталог установки vcpkg. Дополнительные сведения см. в статье, посвященной переменным среды vcpkg.

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

Подстановка переменных в launch.vs.json и tasks.vs.json

CMakePresets.json поддерживает подстановку переменных в launch.vs.json и tasks.vs.json . Ниже приведены некоторые рекомендации.

  • Переменные среды, заданные в активной предустановке настройки, автоматически передаются в конфигурации launch.vs.json и tasks.vs.json . Можно удалить отдельные переменные среды в launch.vs.json и tasks.vs.json , задав для них значение null . В следующем примере для переменной DEBUG_LOGGING_LEVEL задается значение null в launch.vs.json : «env»: < "DEBUG_LOGGING_LEVEL": null >.
  • Значения ключа, заданные в активной предустановке настройки, доступны для использования в файлах launch.vs.json и tasks.vs.json с синтаксисом $> . Например, используйте $ для ссылки на выходной каталог активной предустановки настройки.
  • Отдельные переменные среды, заданные в схеме среды активной предустановки настройки, доступны для использования в файлах launch.vs.json и tasks.vs.json с помощью синтаксиса $> .

Обновите файлы launch.vs.json и task.vs.json , чтобы они ссылались на синтаксис CMakePresets.json вместо синтаксиса CMakeSettings.json . Макросы, которые ссылаются на старый синтаксис CMakeSettings.json , если CMakePresets.json является активным файлом конфигурации, планируется считать устаревшими в будущих выпусках. Например, укажите ссылку на выходной каталог активной предустановки настройки с параметром $ вместо $ , поскольку CMakePresets.json использует синтаксис binaryDir .

Устранить неполадки

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

Если файл CMakePresets.json или CMakeUserPresets.json недопустим, Visual Studio вернется к поведению по умолчанию и отобразит только предустановки по умолчанию. Технология IntelliSense в Visual Studio помогает перехватывать многие из этих ошибок JSON, но вы не будете знать, что ссылаетесь на предустановку с inherits или configurePreset с помощью неправильного имени.

Чтобы проверить, являются ли предустановленные файлы допустимыми, выполните команду cmake —list-presets из командной строки в корне каталога проекта. (Требуется CMake 3.20 или более поздней версии). Если любой из файлов является недопустимым, вы увидите следующую ошибку:

CMake Error: Could not read presets from C:/Users//source/repos/: JSON parse error 

Ниже приведены другие действия по устранению неполадок.

  • Удалите кэш и перенастроите проект (CMake: Delete Cache and Project> Configure
  • Закрытие и повторное открытие папки в Visual Studio (Файл>Закрыть папку).
  • Удаление папки .vs из корня проекта.

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

Включение ведения журнала для удаленных подключений

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

Включение AddressSanitizer для Windows и Linux

Visual Studio поддерживает Средство Распознавания адресов (ASAN), детектор ошибок памяти среды выполнения C и C++ для разработки Windows и Linux. Параметр addressSanitizerEnabled включает CMakeSettings.json AddressSanitizer. CMakePresets.json не поддерживает это поведение.

Вместо этого включите и отключите AddressSanitizer, установив обязательные флаги компилятора и компоновщика самостоятельно. Это позволяет отключить определенное поведение Visual Studio и убедиться, что файл CMakePresets.json может воспроизвести сборку из командной строки.

Следующий пример можно добавить в файл CMakeLists.txt , чтобы включить или отключить AddressSanitizer для целевого объекта.

option(ASAN_ENABLED "Build this target with AddressSanitizer" ON) if(ASAN_ENABLED) if(MSVC) target_compile_options( PUBLIC /fsanitize=address) else() target_compile_options( PUBLIC -fsanitize=address ) target_link_options( PUBLIC -fsanitize=address) endif() endif() 

В части указаны другие флаги компиляции, например «-fno-omit-frame-pointer» . Дополнительные сведения об AddressSanitizer для Linux см. в разделе, посвященном использованию AddressSanitizer. Дополнительные сведения об использовании AddressSanitizer с MSVC см . в командной строке разработчика с помощью AddressSanitizer.

Передайте флаги среды выполнения в AddressSanitizer с помощью поля ASAN_OPTIONS в launch.vs.json . ASAN_OPTIONS по умолчанию принимает значение detect_leaks=0 , если не указаны другие параметры среды выполнения, поскольку LeakSanitizer не поддерживается в Visual Studio.

Запуск CMake из командной строки или конвейера непрерывной интеграции

Вы можете использовать те же файлы CMakePresets.json и CMakeUserPresets.json для вызова CMake в Visual Studio и из командной строки. Документация по CMake и CTest — это наилучшие ресурсы для вызова CMake и CTest с —preset . Требуется CMake версии 3.20 или более поздней.

Выбор исходной среды при сборке с помощью генераторов командной строки в Windows

Пользователю следует настроить среду перед вызовом CMake при сборке с помощью генератора командной строки. Во время сборки с помощью Ninja и набора инструментов Visual C++ в Windows настройте среду перед вызовом CMake для создания системы сборки. Это можно сделать, вызвав vcvarsall.bat с аргументом architecture . Аргумент architecture указывает узел и целевую архитектуру для использования. Дополнительные сведения см. в разделе синтаксис vcvarsall . Если вы выполняете сборку в Linux или Windows с помощью генератора Visual Studio, этот шаг выполнять не нужно.

Это тот же шаг, который Visual Studio выполняет при вызове CMake в интегрированной среде разработки. Visual Studio анализирует активную предустановку настройки для архитектуры узла и целевой архитектуры, заданных параметрами toolset и architecture . Затем Visual Studio использует указанную среду в качестве исходной в vcvarsall.bat . При выполнении сборки из командной строки Windows с помощью Ninja необходимо выполнить этот шаг самостоятельно.

vcvarsall.bat устанавливается вместе с инструментами сборки для Visual Studio. По умолчанию vcvarsall.bat устанавливается в каталог C:\Program Files (x86)\Microsoft Visual Studio\2019\\VC\Auxiliary\Build . Вы можете добавить vcvarsall.bat в PATH , если вы часто используете командную строку.

Пример рабочего процесса с использованием командной строки

Следующие команды можно использовать для настройки и сборки проекта CMake, который применяет Ninja для нацеливания на ARM64 с помощью средств сборки x64. Требуется CMake версии 3.20 или более поздней. Выполните следующие команды из каталога, в котором находится файл CMakePresets.json :

/path/to/vcvarsall.bat x64_arm64 cmake --list-presets=all . cmake --preset cmake --build --preset

Пример файла CMakePresets.json

В файле CMakePresets.json в box2d-lite содержатся примеры предустановок настройки, сборки и тестов. Дополнительные сведения об этом примере см. в презентации «Введение в CMakePresets.json». В проекте DirectXTK можно увидеть еще один пример, в котором показаны многие целевые объекты сборки в своем configurePresets разделе.

Следующие шаги

Дополнительные сведения о настройке и отладке проектов CMake в Visual Studio:

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

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