Бывало, открываешь код-ревью — и чувствуешь себя археологом. Каждый кусок кода — как артефакт из разных времен: тут блестит бронзовая монетка, там торчит бивень мамонта, а чуть дальше — отпечатки времен .NET 4, пережившие три рефакторинга. Все это чудом взаимодействует, но порой страшно тронуть — вдруг вся конструкция рассыплется.
Рубрика «msbuild»
Kaspirin: история о том, как ограничения помогли ускорить разработку
2025-11-21 в 8:46, admin, рубрики: figma, kaspersky, Kaspirin, msbuild, UI, wpf, интерфейс пользователя, фреймворкМедленная сборка кода с .NET Roslyn: как найти и устранить причину
2024-04-16 в 13:33, admin, рубрики: .net, MacOS, msbuild, сборка.NET разработчики знают, что такое ждать сборки кода. Работать при этом невозможно: пока не увидишь, как обновится приложение, — не перейдешь к следующему шагу. А переключиться на другую задачу за это время не успеешь. Получается, если в день переписать код 5 раз, можно потерять полчаса при сборке, а то и больше.
Наследование в 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, разработка под windows
Support 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 проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
Читать полностью »
