Модуль предназначен для сборки ПО, используещего .Net SDK.
Авторы: Лаборатория 50 team@lab50.net.
Все материалы распространяются на условиях стандартной общественной лицензии GNU (GPL) версии 3.
Полный текст лицензии находится в файле COPYING.
Модуль предназначен для сборки библиотек, написанных с использованием .Net SDK. В случае использования варианта «Моно», сборка происхожит в изолированном окружении без подключения к внешним репозиториям NuGet.
Модуль интегрируется в систему сборки Debhelper, аналогично pybuild, maven и др. сборочным модулям.
Дополнительно сборочный модуль позволяет выполнять донастройку сборки проекта:
- модифицировать зависимости;
- удалять цели в .csproj.
Сборка встраивается в стандартную последовательность шагов Debhelper. При очистке (clean)
вызывается dotnet clean, при настройке проекта — dotnet restore и т.д.
Шаги сборки:
- очистка (clean);
- настройки и подготовка (restore);
- сборка (build);
- упаковка (pack);
- создание deb-пакетов.
Типовые результаты сборки:
- deb-пакет с .Net-сборкой (.dll) в общем хранилище (shared storage);
- deb-пакет c разархивированным пакетом NuGet.
Для подключения сборочного модуля следует установить пакет dh-dotnet-lab50. В вашем
deb-проекте включить его использование возможно двумя путями:
-
доабавлением сборочной зависимости dh-sequence-dotnet в файте
debian/contol; -
явным включением модуля (в
debian/rules):%: dh $@ --buildsystem=dotnet
Модуль запуститься только при условии наличия файлов *.sln или *.csproj в корне исходников.
Сборочный модуль способен выполнять все задачи без дополнительных параметров. Но если у вас сколько-нибудь сложный проект, вам пригодятся следующие возможности настройки.
debian/rules:
export NETBUILD_BUILDFILE = src/tool/Main.csproj
Если в вашем .sln несколько проектов, можно выбрать поддежащие сборке.
debian/rules:
export NETBUILD_TARGETS = MyLibrary1 MyTool2
Модификация производится с помощью инструмента nh_patchproj, который запускается на этапе
настройки (dh_configure).
Способ № 1. Добавление аргументов для dh_configure. Аргументы применяются ко всем собираемым проектам.
override_dh_auto_configure:
dh_auto_configure -- --remove-package MinVer
Способ № 2. Задание параметров для конкретных проектов. Параметры задаются в файлах
debian/проект. Где проект — название проекта в нижнем регистре. Например:
debian/automapper:
remove-package MinVer
remove-tag Target
tag-include PreBuild
Способ № 3. Комбинация № 1 и № 2. Через параметры dh_configure задаются параметры для всех проектов, через файлы в debian/ — специфические для каждого проекта.
Способ № 3. Для файлов, не являющихся .csproj. Например, для .props и .targets.
debian/nh_patch:
<файл 1> <параметры nh_patchproj>
<файл 2> <параметры nh_patchproj>