Skip to content

About

Пакетирование .Net библиотек и приложений в Debian

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

62 Commits

Folders and files

Repository files navigation

Модуль для сборки проектов .Net

Модуль предназначен для сборки ПО, используещего .Net SDK.

Авторы: Лаборатория 50 team@lab50.net.

Лицензия

Все материалы распространяются на условиях стандартной общественной лицензии GNU (GPL) версии 3.

Полный текст лицензии находится в файле COPYING.

Назначение

Модуль предназначен для сборки библиотек, написанных с использованием .Net SDK. В случае использования варианта «Моно», сборка происхожит в изолированном окружении без подключения к внешним репозиториям NuGet.

Модуль интегрируется в систему сборки Debhelper, аналогично pybuild, maven и др. сборочным модулям.

Дополнительно сборочный модуль позволяет выполнять донастройку сборки проекта:

  • модифицировать зависимости;
  • удалять цели в .csproj.

Как работает

Сборка встраивается в стандартную последовательность шагов Debhelper. При очистке (clean) вызывается dotnet clean, при настройке проекта — dotnet restore и т.д.

Шаги сборки:

  1. очистка (clean);
  2. настройки и подготовка (restore);
  3. сборка (build);
  4. упаковка (pack);
  5. создание deb-пакетов.

Типовые результаты сборки:

  1. deb-пакет с .Net-сборкой (.dll) в общем хранилище (shared storage);
  2. 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

Модификация .csproj

Модификация производится с помощью инструмента 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>

About

Пакетирование .Net библиотек и приложений в Debian

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages