Azure DevOps-带有特定发布的特定项目的VSBuild

问题描述

我有一个解决方案,其中包含大约63个奇数项目,但是我的主要目标是大约6个项目。其中3个是DotNet Core API和3个Web应用程序。我可以使用DotNetCoreCLI@2任务发布DotNet Core API。不幸的是,当我尝试发布Web应用程序时,遇到以下错误

错误消息

MSBUILD:错误MSB1006:属性无效。开关: OutputPath:** \ WebApplicationMain \ Publish

YAML

- task: VSBuild@1
  inputs:
    solution: '**\WebApplicationMain\MainWebApplication.csproj'
    msbuildArgs: '/t:build /p:DeployOnBuild=true /p:PublishProfile=publish.pubxml /p:OutputPath:"**\WebApplicationMain\Publish"'
    platform: '$(buildplatform)'
    configuration: '$(buildConfiguration)'

这是我的publish.pubxml

<Project Toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Staging</LastUsedBuildConfiguration>
    <LastUsedplatform>Any cpu</LastUsedplatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>Publish</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>
</Project>

在这里想念什么?有什么建议吗?

解决方法

您在:中使用/p:OutputPath:而不是=,因此只需将其修复为:

/p:OutputPath="some/path"
,

不确定这是否是正确答案,但对我有用。我删除了变量 $(build.artifactstagingdirectory) 并将其替换为不同的目录名称。我用了“舞台”。我怀疑构建代理不喜欢该特定项目的变量中包含的值。