【发布时间】:2018-10-12 05:21:43
【问题描述】:
我想在 Azure Devops 中为 XAP 移动应用设置持续集成和部署。
为了获得 CI/CD,我需要设置 Azure Pipeline 以安装正确的包。
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 和凭据提供程序将包推送到提要
Connect To Feed 屏幕提到我需要下载 Nuget.exe 和凭据提供程序
这是the Credentials Provider上的文档
我解压后包含了 VSTS CredentialProviders Nuget.Exe。
下一步是按照“连接到 Feed”屏幕的“添加此 Feed”部分给出的说明进行操作。
例如
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 "
【问题讨论】:
标签: azure-devops nuget-package xaf