【问题标题】:How do I set up Azure Dev Ops to build Dev Express XAF-XPO project?如何设置 Azure Devops 以构建 Devexpress XAF-XPO 项目?
【发布时间】: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 上有一些提及

[更新]

我尝试删除许可文件并同步项目。 现在错误显示为缺少程序集引用

另外,当我重建解决方案时,属性文件夹中缺少许可证文件

不知this helps explain it

[更新]

Manuel Grunder [DevExpress MVP] 和 DXNugetPackageBuilder 作者解释说

" 使用 nuget.packages 时,您还需要通过 nuget 引用它们 as he explains here "

【问题讨论】:

标签: azure-devops nuget-package xaf


【解决方案1】:

explained here一样

“在使用 nuget.packages 时,您还需要通过 nuget 引用它们。这就是它一开始不起作用的原因。”

【讨论】:

  • 现在 DevExpress 对 XAF 有 Nuget 支持,无需在 Azure 中设置工件来存储包。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-13
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
相关资源
最近更新 更多