【问题标题】:Azure DevOps Pipeline Program does not contain a static 'Main' method suitable for an entry pointAzure DevOps Pipeline Program 不包含适用于入口点的静态“Main”方法
【发布时间】:2021-02-19 06:11:15
【问题描述】:

我收到一个错误,因为“程序不包含适合入口点的静态‘Main’方法 " 在我的 Azure DevOps 管道中。

下面是我的构建步骤。

stages:
- stage: Build
  displayName: Build stage

  jobs:
  - job: Build
    displayName: Build
    condition: ne(variables['Build.Reason'], 'PullRequest')
    pool:
      vmImage: $(vmImageName)

    steps:
    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: 'build'
        arguments: --output $(System.DefaultWorkingDirectory) --configuration $(buildConfiguration)
    - task: DotNetCoreCLI@2
      inputs:
        command: publish
        publishWebProjects: true
        arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactsStagingDirectory)/$(Build.BuildId).zip'
        zipAfterPublish: true
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: $(Build.ArtifactsStagingDirectory)/$(Build.BuildId).zip
        ArtifactName: drop

请注意,这不是我的完整管道,因为错误是与步骤构建有关,我只粘贴那个。

【问题讨论】:

  • 我遇到了类似的问题:在 Azure 管道中运行 dotnet restore 之后,我正在运行 dotnet testdotnet test 抛出了这个错误。事实证明,问题在于我要测试的项目的目录大小写的一致性。我必须确保目录在 git、.sln 文件和任何 .csproj ProjectReference 中的大写一致。原来实际的dotnet进程真的找不到Program.cs

标签: azure azure-devops yaml azure-pipelines devops


【解决方案1】:

在摸索了一会儿之后,基本上遍历了管道中的每一行,我能够解决这个问题。这是构建目录的问题。我必须使用arguments: --output $(System.DefaultWorkingDirectory)/publish_output --configuration $(buildConfiguration) 而不是arguments: --output $(System.DefaultWorkingDirectory) --configuration $(buildConfiguration),以便最终输出将保存在publish_output 文件夹中。

stages:
- stage: Build
  displayName: Build stage

  jobs:
  - job: Build
    displayName: Build
    condition: ne(variables['Build.Reason'], 'PullRequest')
    pool:
      vmImage: $(vmImageName)

    steps:
    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: 'build'
        arguments: --output $(System.DefaultWorkingDirectory)/publish_output --configuration $(buildConfiguration)
    - task: DotNetCoreCLI@2
      inputs:
        command: publish
        publishWebProjects: true
        arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactsStagingDirectory)/$(Build.BuildId).zip'
        zipAfterPublish: true
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: $(Build.ArtifactsStagingDirectory)/$(Build.BuildId).zip
        ArtifactName: drop

在这个改变之后,我的管道是成功的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多