Как добавить пользовательскую dll в azure dev ops pipe из частного хранилища?
Есть несколько направлений для вашего требования. Согласно вашему описанию, это dll вместо пакетов nuget. Вот два способа, которые мне нравятся:
1.Если вы знакомы с nuget, вы можете создавать пакеты nuget для этих библиотек. Затем publi sh пакет nuget в Azure ленту новостей Devops . После этого вы можете легко использовать задачу восстановления Nuget для восстановления этих пакетов:
Предварительное условие: Ваш проект должен использовать способ пакета nuget Для управления DLL это означает, что вам нужно отредактировать файл проекта проекта. Ваш проект должен ссылаться на пакеты nuget в csproj, а не ссылаться на dll напрямую, используя hintpath ...
Преимущество: Nuget - это распространенный инструмент для управления dll, когда вы работаете. net ядро. И azure devops Feed поддерживает приватный канал, поэтому никто не сможет получить доступ к вашему каналу, пока вы не предоставите доступ к ним.
Недостаток: Вы должны выполнить некоторые задания по упаковке / публикации dll и редактирование файла проекта (xx.xxproj
).
2. Если ваша команда настаивает на использовании отдельных dll вместо упаковки их в пакеты nuget, то вам не нужно беспокоиться о nuget restore step
. Все, что вам нужно, это убедиться, что на этапе сборки можно найти недостающие сборки.
Например, на локальном компьютере мой проект опирается на одну сборку на windows рабочем столе. Тогда его xx.csproj имеет:
<Reference Include="ClassLibrary1">
<HintPath>..\..\..\..\Desktop\ClassLibrary1.dll</HintPath>
</Reference>
Очевидно, что произойдет сбой, если я разверну его на Azure Devops, потому что конвейер не найдет тот же путь. Для этой проблемы моя идея - создать пустую папку Dlls
в каталоге проекта, добавить папку в систему контроля версий. Кроме того, измените HintPath
в файле проекта на <HintPath>Dlls\ClassLibrary1.dll</HintPath>
Теперь в конвейере devops я могу добавить задачу git или команду cmd, которая запускает команды git для загрузки ваших сборок из частных репозиториев. , Затем задача командной строки для копирования сборок в папку Dlls
в папке System.DefaultWorkingDirectory . Наконец, процесс сборки также может быть успешным.
Я просто показываю два направления для вашего сценария, на самом деле существуют другие направления. Среди них я настоятельно рекомендую способ nuget packages+Azure Devops Feed
, так как он удобнее после их настройки. Надеюсь, что все выше помогает.