小编AJ *_*son的帖子

“配置触发器失败,再次编辑并保存管道”,没有明显错误,也没有更多详细信息

在将一堆 YAML 管道转换为使用模板来保存作业逻辑以及定义管道变量后,我遇到了一个奇怪的问题。管道运行得很好,但是我收到“最近检测到的一些与管道触发相关的问题”。管道摘要页面顶部的警告和仅查看详细信息指出:“配置触发器失败,请再次编辑并保存管道。”

这里奇怪的部分是管道工作得很好,包括触发器。没有任何问题,也没有提供有关假定问题的更多细节。目前,我已经为管道覆盖了 YAML 触发器,但我也在 YAML 中定义了相同的触发器,看看这是否有帮助(但没​​有)。

我正在寻找有关可能导致此问题的原因的任何想法,或者鉴于错误/警告提供的完全缺乏详细信息,我如何能够进一步对其进行故障排除。这给开发人员带来了很多困惑,他们认为警告可能导致他们的构建出现问题。

这是主要管道。构建存储库是一个共享存储库,用于保存在构建系统中的多个存储库中使用的代码。dev.yaml 包含开发环境特定的变量值。共享保存基于管道运行的分支有条件设置的变量。

name: ProductName_$(BranchNameLower)_dev_$(MajorVersion)_$(MinorVersion)_$(BuildVersion)_$(Build.BuildId)
resources:
  repositories:
    - repository: self
    - repository: build
      type: git
      name: Build
      ref: master

# This trigger isn't used yet, but we want it defined for later.
trigger: 
  batch: true
  branches:
    include: 
    - 'dev'

variables:
- template: YAML/variables/shared.yaml@build
- template: YAML/variables/dev.yaml@build

jobs:
- template: ProductNameDevJob.yaml
  parameters:
    pipelinePool: ${{ variables.PipelinePool }}
    validRef: ${{ variables.ValidRef }}
Run Code Online (Sandbox Code Playgroud)

然后这就是实际工作 yaml 的开始。它提供了一种可重用的作业定义,可以在多个总体管道中使用:

parameters:
- name: dependsOn
  type: object
  default: {}
- name: …
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-devops-server azure-pipelines-yaml azure-devops-server-2020

20
推荐指数
2
解决办法
2万
查看次数

如何确定C#表达式树的深度?

我试图弄清楚是否有一种很好的方法来使用迭代方法计算出特定C#表达式树的深度.我们使用表达式进行一些动态评估,在罕见(错误)条件下,系统可以尝试处理一个如此大的表达式树,它会吹掉堆栈.我试图找出一种方法来检查树的深度,然后才允许评估树.

c# lambda expression

7
推荐指数
2
解决办法
1912
查看次数

将扩展方法限制为基类

有没有办法阻止扩展方法出现在派生类型和基类型中,并且只将它们限制为基类型?

我的情况有点特殊情况,但长话短说,我有一个场景,从基础实体转换到派生实体是安全的,也可以安全地从派生实体列表转换为基数列表实体,反之亦然.由于这些演员通常是不安全的,我提供扩展方法来进行演员表,以便使用我的库的开发人员不必记住哪些演员表是安全的,哪些不是.

ToDerivedEntity扩展方法是相对于BaseEntity实现的,虽然在DerivedEntity上调用ToDerivedEntity没有任何损害,但从可用性的角度来看,如果我可以阻止ToDerivedEntity出现在DerivedEntity上并仅限制它,那将是很好的到BaseEntity.

public class BaseEntity
{
}

public class DerivedEntity : BaseEntity
{
}

static class ExtensionMethods
{
    // Should only show up on BaseEntity.
    public static ToDerivedEntity(this BaseEntity source)
    {
        return (DerivedEntity)source;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# inheritance extension-methods

2
推荐指数
1
解决办法
770
查看次数

如何识别对象是否为基本通用类型?

我上课了.

DataMapper<TDalType, TFieldType> : DataMapperBase
Run Code Online (Sandbox Code Playgroud)

对于某个特定的实体,我有一个

ObjectADataMapper<TFieldType> : DataMapper<ObjectADal, TFieldType>
Run Code Online (Sandbox Code Playgroud)

然后我有一个DataMapperBase的实例,需要确定它是否是一个ObjectADataMapper版本的实体(具有任何TFieldType值).

c# generics inheritance

2
推荐指数
1
解决办法
248
查看次数