Я хочу настроить непрерывную интеграцию и развертывание для приложения XAP Mobile в Azure Devops.
Чтобы получить CI / CD, мне нужно настроить конвейер Azure для установки правильных пакетов.
В документации имеется информация по Размещение собственных каналов NuGet и Начало работы с пакетами NuGet в DevOps Azure
Dev Express объяснила, что они делаютв настоящее время не предоставляет канал Nuget для XAF, но я могу создать свой собственный делегат DCNugetPackageBuilder
Использование DXNugetPackageBuilder для создания пакетов Nuget
Согласноинструкции, которые я скачал .pdb файлы извлекли их в c: \ tmp \ символы
Я также скачал DXNugetPackageBuilder и отредактировал buildPackages.bat в соответствии с инструкциями.
Далее я запустил build.ps1 в расширенном Powershell
Это создало файлы .nupkg в C: \ tmp \ Nuget
По умолчанию используются файлы, расположенные в
C:\Program Files (x86)\DevExpress 18.1\Components\Bin\Framework
и .pdb fФайлы, расположенные по адресу
c:\tmp\symbols
Использование Nuget.Exe и провайдера учетных данных для отправки пакетов в канал
На экране подключения к каналу упоминается, что мне нужно загрузить Nuget.exe и поставщик учетных данных
Вот документы по поставщику учетных данных
Я распаковал VSTS CredentialProviders Nuget.Exe is
Следующим шагом является выполнение инструкций, приведенных в разделе «Добавить этот канал» на экране «Подключение к каналу».
Например,
nuget.exe push -Source "SBDDevExpress" -ApiKey VSTS c:\tmp\Nuget\DevExpress.Data.18.1.6.0.nupkg
Iстолкнулся с проблемой отказа в доступе , которая была решена здесь
, после чего я смог выдвинуть все нужные мне пакеты.
Установить источник пакета Nuget
В VS2017 с открытым решением я использовал Инструменты -> Диспетчер пакетов Nuget -> Настройки диспетчера пакетов
Я добавил настройки пакета с конечной точкой Azure, настроенной в качестве источника пакета.
Ошибки здания
КогдаЯ запускаю конвейер сборки и получаю сообщения об ошибках типа
The type or namespace DevExpress could not be found are you missing a directive or assembly reference?
Из изучения Updater.cs и Module.cs Кажется, мне не хватает следующих пространств имениз ленты Nuget.
DevExpress.ExpressApp.DC;
DevExpress.ExpressApp.Updating;
DevExpress.Persistent.BaseImpl.PermissionPolicy;
[Update]
DevExpress предложила мне сравнить dll, сгенерированные в папке bin, с моим фидом пакета.
Я нашел несколько отсутствующих файлов и отправил их пакеты.
Теперь у меня есть
XafMobile.Module\Properties\licenses.licx(1.0): Error LC0003: Unable to resolve type 'DevExpress.ExpressApp.ModuleBase"
Я могу видеть из источникакод, что ModuleBase является общедоступным классом в DevExpress.ExpressApp
Мне интересно, если это как-то связано с отражением.
Есть некоторые упоминания об этом в Dev Express support
[Обновление]
Я попытался удалить файлы лицензии и синхронизировать проект.Теперь ошибки отображаются как отсутствующие ссылки на сборки
Кроме того, когда я перестраиваю свое решение, файлы лицензий отсутствуют в папках свойств
Интересно, поможет ли это объяснить
[Обновить]
Мануэль Грюндер [DevExpress MVP] и автор DXNugetPackageBuilder объяснили, что
"При работе с nuget.packages вам нужно ссылаться на них также через nuget , как он объясняет здесь"