Azure DevOps - 针对特定项目的 VSBuild 发布不起作用

Azure DevOps - VSBuild for a specific project with publish not working

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

错误信息

MSBUILD : error MSB1006: Property is not valid. Switch: 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) 并将其替换为不同的目录名称。我用了“舞台”。我怀疑构建代理不喜欢该特定项目的该变量中包含的值。