.NET разработчики знают, что такое ждать сборки кода. Работать при этом невозможно: пока не увидишь, как обновится приложение, — не перейдешь к следующему шагу. А переключиться на другую задачу за это время не успеешь. Получается, если в день переписать код 5 раз, можно потерять полчаса при сборке, а то и больше.
Рубрика «msbuild»
Медленная сборка кода с .NET Roslyn: как найти и устранить причину
2024-04-16 в 13:33, admin, рубрики: .net, MacOS, msbuild, сборкаНаследование в Nuget-пакетах
2021-01-21 в 9:40, admin, рубрики: .net, msbuild, nuget, Блог компании Райффайзенбанк, ооп
Nuget-пакет — это не только архив с переиспользуемыми сборками, но и контент с target-скриптами, которые задают поведение MsBuild при сборке приложения. Это дает нам возможность рассматривать nuget-пакет в качестве самостоятельного объекта, у которого есть состояние и поведение.
А раз у нас есть объект, то что мешает попробовать посмотреть на работу с ним со стороны объектно-ориентированной парадигмы? Давайте попробуем применить для nuget-пакетов один из основных принципов ООП — наследование.
Читать полностью »
Автоматизированная сборка Delphi-приложения
2020-02-25 в 22:27, admin, рубрики: automation, ci/cd, Delphi, msbuild, Программирование, системное программированиеАвтоматизированная сборка Delphi-приложения
Я довольно часто сталкивался с тем, что разработчики на Delphi (можно сказать традиционно) компилируют свои приложения "ручками", что далеко не production-решение, а со стороны выглядит кустарщиной и "делаем на-коленке", хотя продукты бывают весьма серьёзными и продаваемыми. Вероятно, это пошло ещё с тех пор, когда для автоматизации нужно было придумывать свои батнички, которые запускали компилятор командной строки dcc32
с нужными параметрами. Некоторые даже сделали свой "Публикатор" — Delphi-expert, который делает работу сервера сборок: компилирует (правда, открытый в IDE) проект, выставляя ему взятый из какой-то БД инкрементированный номер версии, записывает некий changelog и копирует это куда-то в сетевой каталог.
Я не буду вдаваться в исторический экскурс как было раньше. Я расскажу как есть/можно сейчас, и как это использовать для повышения эффективности своей работы.
Файл проекта современной версии Delphi — это .dproj
-файл (здесь и далее я буду ориентироваться на Delphi 10 Rio, но с небольшими отличиями это верно для всех более ранних версий Delphi, начиная с 2007). В нём хранятся все настройки проекта, которые обычно изменяют в IDE (меню Project - Options (Ctrl+Shift+F11)
). В рамках данной статьи я сконцентрируюсь на "основных", которые понадобятся для демонстрации общих принципов: это Config
— конфигурация, Platform
— платформа, OutputDirectory
— путь выходного файла и ConditionalDefines
(директивы условной компиляции). Остальные настройки, если таковые нужно менять при сборке, я предлагаю выявить самостоятельно. Этот же .dproj
-файл, если в него заглянуть обычным текстовым редактором, является ничем иным как скриптом сборки MSBuild (давайте создадим простое консольное приложение и назовём его DelphiAutomatedBuild):
Поддержка Visual Studio 2019 в PVS-Studio
2019-06-04 в 10:06, admin, рубрики: .net, .NET Compiler Platform, .net core, C#, msbuild, pvs-studio, roslyn, static analyzer, Visual Studio, Visual Studio 2019, Блог компании PVS-Studio, разработка под windows
Поддержка Visual Studio 2019 в PVS-Studio затронула сразу несколько различных компонентов: сам плагин для IDE, command line приложение для анализа, ядра C++ и C# анализаторов, а также несколько утилит. О том, с какими проблемами мы столкнулись в ходе поддержки новой версии IDE и как их решали, я кратко расскажу в данной статье.
Читать полностью »
Support of Visual Studio 2019 in PVS-Studio
2019-06-04 в 10:02, admin, рубрики: .net, .NET Compiler Platform, .net core, C#, msbuild, pvs-studio, roslyn, static analyzer, Visual Studio, Visual Studio 2019, Блог компании PVS-Studio, разработка под windowsSupport of Visual Studio 2019 in PVS-Studio affected a number of components: the plugin itself, the command-line analyzer, the cores of the C++ and C# analyzers, and a few utilities. In this article, I will briefly explain what problems we encountered when implementing support of the IDE and how we addressed them.
Читать полностью »
Расширение процесса сборки с помощью MSBuild
2018-06-23 в 12:34, admin, рубрики: .net, continuous integration, devops, msbuildВ данной статье речь пойдет о том, как расширить процесс сборки проекта с помощью MSBuild.
Меню
- Основные понятия — что такое target и task в MSBuild
- Жизненный цикл сборки MSBuild — какая последовательность вызова таргетов
- Подготовка окружения для примеров
- Таргеты в MSBuild — пример использования некоторых таргетов MSBuild
- Создание собственного таргета MSBuild
- Таски в MSBuild — пример использования некоторых тасков MSBuild
- Переменные и макросы в .csproj
- Ссылки
Поддержка Visual Studio 2017 и Roslyn 2.0 в PVS-Studio: иногда использовать готовые решения не так просто
2017-05-03 в 8:33, admin, рубрики: .net, C#, msbuild, plugin, pvs-studio, roslyn, Visual Studio, visual studio 2017, Блог компании PVS-Studio, дьявол в деталях, разработка под windowsВ данной статье я хочу рассказать о том, с какими проблемами столкнулись разработчики PVS-Studio при поддержке новой версии Visual Studio. Кроме того, постараюсь ответить на вопрос: почему поддержка нашего C# анализатора, основанного на «готовом решении» (в данном случае, это Roslyn), оказывается в некоторых ситуациях более затратной, чем нашего «самописного» С++ анализатора.
Читать полностью »
Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N3
2017-03-24 в 13:21, admin, рубрики: bugs, c/c++, C#, CoreCLR, entity framework, freebsd, msbuild, open source, pvs-studio, Блог компании PVS-Studio, открытый код, ошибки в коде, статический анализ кода
Мы решили в меру своих сил регулярно искать и устранять потенциальные уязвимости и баги в различных проектах. Можно назвать это помощью open-source проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
Читать полностью »
Уязвимости, которые устранила команда PVS-Studio на этой неделе: выпуск N1
2017-03-10 в 13:35, admin, рубрики: bugs, C#, CoreFx, cwe, msbuild, pvs-studio, Блог компании PVS-Studio
Мы решили в меру своих сил регулярно искать и устранять уязвимости и баги в различных проектах. Можно назвать это помощью open-source проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
Читать полностью »
Проверяем исходный код MSBuild с помощью PVS-Studio
2016-08-25 в 12:13, admin, рубрики: .net, C#, microsoft, msbuild, open source, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio
Работая над развитием статического анализатора исходного кода PVS-Studio, мы часто сталкиваемся с необходимостью проверки на наличие ошибок больших открытых проектов от именитых разработчиков. Тот факт, что даже в таких проектах удается найти ошибки, делает нашу работу гораздо более осмысленной. К сожалению, все допускают ошибки. Как бы грамотно ни была выстроена система контроля качества выпускаемого программного кода, нет абсолютно никакой возможности избежать особенностей «человеческого фактора». До тех пор, пока разработкой программ занимаются люди, актуальность использования инструментов для поиска ошибок в коде, таких как PVS-Studio, не уменьшится. Сегодня мы будем искать ошибки в исходном коде MSBuild, который, увы, тоже не идеален.
Читать полностью »