.net core 使用Azure DevOps piplines部署命令行.net core 2.2应用程序
我有一个C#targeting.net core 2.2(不是asp.net core,只是一个命令行应用程序)的命令行客户端 我正在尝试使用Azure DevOps管道将该应用程序分发到一组服务器 不幸的是,我无法使用VisualStudio构建操作来创建完整的包 为了使用本地编译的包进行部署,我创建了一个工作正常的发布“文件夹”配置文件。我希望能够告诉操作也这样做,并将结果复制到artifactstaging目录,但不幸的是,它似乎不起作用 我正在使用以下MSBuild参数:.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
/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'添加任何内容。“当然,也没有要部署的内容。我现在在家,但我可以指导您完成明天的工作,并将我的构建放在面前。