使用 Azure DevOps 管道部署 command-line .net core 2.2 应用程序

Deploying a command-line .net core 2.2 app using Azure DevOps piplines

我有一个针对 .net 核心 2.2 的 command-line 客户端编写的 C#(不是 asp.net 核心,只是一个 command-line 应用程序) .

我正在尝试使用 Azure DevOps 管道将该应用程序分发到一组服务器。

不幸的是,我无法获得 Visual Studio 构建操作来创建完整的包。

为了使用本地编译的包进行部署,我创建了一个可以正常工作的发布 "Folder" 配置文件。我希望能够告诉操作执行相同操作并将结果复制到 Artifact Staging 目录,但不幸的是,它似乎不起作用。

我正在使用以下 MSBuild 参数:

/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:PublishProfile="FolderProfile"

配置文件定义如下:

<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PublishProtocol>FileSystem</PublishProtocol>
    <Configuration>Release</Configuration>
    <Platform>Any CPU</Platform>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <PublishDir>..\ClientPublish\</PublishDir>
    <SelfContained>false</SelfContained>
    <_IsPortable>true</_IsPortable>
  </PropertyGroup>
</Project>

根据我在编译日志中看到的内容,"DeployOnBuild" 参数被简单地忽略了,应用程序从未部署过。

我做错了什么?

编辑

这是我最近尝试使用部署配置文件的屏幕截图:

复制文件: 和神器发布:

或者,我在禁用文件复制任务后这样试过:

经过大量来回,这是它工作的正确管道:

首先执行 SDK 安装程序任务(类似于 .NET Framework 的 Nuget 安装程序)

.dotnet restore(类似于 .NET Framework 的 Nuget Restore)

构建解决方案

然后添加.dotnet publish创建神器(这一步需要在build之后添加)

Publish Artifact 以放下要发布管道拾取的工件。

似乎在这种情况下不需要 MSBuild 参数。内置管道将自行完成所有工作。