.net core 使用Azure DevOps piplines部署命令行.net core 2.2应用程序

.net core 使用Azure DevOps piplines部署命令行.net core 2.2应用程序,.net-core,azure-devops,.net-core-2.2,.net Core,Azure Devops,.net Core 2.2,我有一个C#targeting.net core 2.2(不是asp.net core,只是一个命令行应用程序)的命令行客户端 我正在尝试使用Azure DevOps管道将该应用程序分发到一组服务器 不幸的是,我无法使用VisualStudio构建操作来创建完整的包 为了使用本地编译的包进行部署,我创建了一个工作正常的发布“文件夹”配置文件。我希望能够告诉操作也这样做,并将结果复制到artifactstaging目录,但不幸的是,它似乎不起作用 我正在使用以下MSBuild参数: /p:Skip

我有一个C#targeting.net core 2.2(不是asp.net core,只是一个命令行应用程序)的命令行客户端

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

不幸的是,我无法使用VisualStudio构建操作来创建完整的包

为了使用本地编译的包进行部署,我创建了一个工作正常的发布“文件夹”配置文件。我希望能够告诉操作也这样做,并将结果复制到artifactstaging目录,但不幸的是,它似乎不起作用

我正在使用以下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>

文件系统
释放
任何CPU
netcoreapp2.2
..\ClientPublish\
假的
真的
从我在编译日志中看到的情况来看,“DeployOnBuild”参数被忽略,应用程序从未部署过

我做错了什么

编辑

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

复制文件: 和工件发布:

或者,在禁用“文件复制”任务后,我也会这样尝试:


经过多次往返之后,这是它工作的正确管道:

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

.dotnet还原(类似于.NET Framework的Nuget还原)

构建解决方案

然后添加.dotnet publish以创建工件(此步骤需要在构建之后添加)

Publish Artifact以删除发布管道要拾取的工件


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

尝试这些:/p:DeployOnBuild=true/p:WebPublishMethod=FileSystem/p:DeployDefaultTarget=WebPublish/p:publishUrl=“$(build.artifactstagingdirectory)\\”尤其是最后一个。另外,您最后有发布工件任务吗?我还有一个发布工件,在此之前,我执行了一个文件复制操作,将..\ClientPublish\复制到$(build.artifactstagingdirectory)中,但由于没有触发发布,源文件夹保持为空。我使用您建议的参数尝试了此操作,但没有成功:生成成功,但我得到“2019-01-31T18:34:09.8644830Z##[警告]目录'D:\a\1\a'为空。将不会向构建工件'drop\u client'添加任何内容。“当然,也没有要部署的内容。我现在在家,但我可以指导您完成明天的工作,并将我的构建放在面前。