10

我正在尝试为 WinForms 桌面应用程序创建 Azure DevOps 构建管道,问题是我无法发布应用程序,也无法创建构建工件。

我创建了一个 WinForms 桌面应用程序并尝试在 Azure DevOps 中创建持续集成 (CI) 管道。

我选择了 .NET 桌面模板来配置持续集成 (CI) 管道。它正在恢复 NuGet 并成功构建解决方案。

现在我想发布 WinForms .NET 桌面应用程序并生成构建工件。我已经尝试过以下任务(如https://developercommunity.visualstudio.com/content/problem/337714/can-build-code-but-release-pipeline-says-no-artifa.html中所述)

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

以下是我完整的 yml 代码:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(System.DefaultWorkingDirectory)\DesktopApp\bin\'
    Contents: '**'
    TargetFolder: '$(System.ArtifactsDirectory)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

它无法生成我可以下载或用于发布管道的工件。

需要帮助我找不到如何发布 WinForms .NET 桌面应用程序和生成构建工件。

主要目标是将发布应用程序与桌面应用程序的设置和发布文件夹一起保存在我机器上的任何位置。

谁能帮帮我?

4

1 回答 1

5

我想发布 WinForms 桌面应用程序,并希望将其发布为工件,我可以下载并保存已发布的应用程序,并通过发布管道在我的机器上的任何位置设置桌面应用程序

如果要发布 WinForms 桌面应用程序,以便在任何位置下载并保存已发布的应用程序并设置桌面应用程序,则需要发布发布的输出,而不是构建。

因此,要解决此问题,您需要在构建项目时向 MSBuild 提供“/target:Publish”参数。这是 Azure Devops 中的样子:

在此处输入图像描述

如果构建失败并出现与过期证书或 pfx 文件相关的错误,请参阅另一篇关于在构建时在构建服务器上导入所需证书的博客文章,其中涉及在之前添加一个“Import-PfxCertificate.ps1”构建步骤MSBuild 步骤。

这是一个很棒的文档,展示了如何从您的构建服务器持续部署 ClickOnce 应用程序

希望这可以帮助。

于 2019-08-23T03:11:18.410 回答