【发布时间】:2019-01-31 16:09:57
【问题描述】:
我有一个针对 .net core 2.2 编写的 C# 命令行客户端(不是 asp.net 核心,只是一个命令行应用程序)。
我正在尝试使用 Azure DevOps 管道将该应用程序分发到一组服务器。
很遗憾,我无法通过 Visual Studio 构建操作来创建完整的包。
为了使用本地编译的包进行部署,我创建了一个可以正常工作的发布“文件夹”配置文件。我希望能够告诉操作执行相同的操作并将结果复制到 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”参数被简单地忽略,应用程序从未部署。
我做错了什么?
编辑
或者,我在禁用文件复制任务后尝试这样:
【问题讨论】:
-
试试这些:/p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:DeployDefaultTarget=WebPublish /p:publishUrl="$(build.artifactstagingdirectory)\\" 特别是最后一个跨度>
-
还有,你到底有没有发布工件任务?
-
我有一个发布工件,在此之前,我有一个文件复制操作,将 ..\ClientPublish\ 复制到 $(build.artifactstagingdirectory) 但由于没有触发发布,源文件夹保持空白
-
我用你建议的参数试过了,但没有运气:构建成功但我得到“2019-01-31T18:34:09.8644830Z ##[warning]Directory 'D:\a\1 \a' 为空。不会添加任何内容来构建工件 'drop_client'。"当然,没有什么可部署的
-
我现在在家,但我可以指导您完成明天的工作,我将在我面前完成我的构建。
标签: .net-core azure-devops .net-core-2.2