我想在Azure Devops中为XAP Mobile应用设置持续集成和部署。
为了获取CI / CD,我需要设置Azure管道以安装正确的软件包。
Hosting your own NuGet feeds上的文档中有一些信息 和Get started with NuGet packages in Azure DevOps
Dev Express解释说,他们目前不为XAF提供Nuget提要,但我可以自己制作Delegate's DCNugetPackageBuilder
使用DXNugetPackageBuilder制作Nuget软件包
按照说明,我下载了.pdb文件,并将它们提取到c:\ tmp \ symbols
我还下载了DXNugetPackageBuilder并根据说明编辑了buildPackages.bat。
接下来,我在提升的Powershell中运行build.ps1
这在C:\ tmp \ Nuget中创建了.nupkg文件
默认情况下,此文件使用位于
的文件 C:\Program Files (x86)\DevExpress 18.1\Components\Bin\Framework
和位于
的.pdb文件c:\tmp\symbols
使用Nuget.Exe和凭据提供程序将程序包推送到提要
“连接到提要”屏幕上提到我需要下载Nuget.exe和凭据提供程序
上的文档我解压缩了VSTS CredentialProviders Nuget。其中包括Exe。
下一步是按照“连接到提要”屏幕的“添加此提要”部分给出的说明进行操作。
例如
nuget.exe push -Source "SBDDevExpress" -ApiKey VSTS c:\tmp\Nuget\DevExpress.Data.18.1.6.0.nupkg
我遇到了访问被拒绝的问题that got solved here
然后我就能推送我想要的所有包裹。
设置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;
[更新]
DevExpress建议我将bin文件夹中生成的dll与我的软件包提要进行比较。
我发现了几个丢失的文件并推送了它们的包。
我现在有
XafMobile.Module\Properties\licenses.licx(1.0): Error LC0003: Unable to resolve type 'DevExpress.ExpressApp.ModuleBase"
从源代码中可以看到ModuleBase是DevExpress.ExpressApp中的公共类
我想知道这是否与反射有关。
在Dev Express support
中有提及[更新]
我尝试删除许可证文件并同步项目。 现在错误显示为缺少程序集引用
此外,当我重建解决方案时,属性文件夹中缺少许可证文件
[更新]
Manuel Grunder [DevExpress MVP]和DXNugetPackageBuilder作者解释说
” 使用nuget.packages时,您也需要通过nuget引用它们 as he explains here “