【问题标题】:Using Azure Predefined Variable in a .pubxml file in Azure YAML Pipeline在 Azure YAML 管道的 .pubxml 文件中使用 Azure 预定义变量
【发布时间】:2020-05-14 23:55:19
【问题描述】:

我有一个构建和发布一个 cs 项目的 YAML 管道。我试图在发布配置文件中放置一个预定义的变量,但是它抛出了一个错误。我希望将发布的文件放入 $(Build.ArtifactStagingDirectory) 位置,以便我可以使用 Publish Build Artifact 任务。

我不确定为什么当它在代理目录中运行时,发布配置文件中的变量没有按预期工作。

错误:

错误 MSB4184:无法评估表达式“”“.ArtifactStagingDirectory”。找不到方法“System.String.ArtifactStagingDirectory”

YAML:

  - task: MSBuild@1
    displayName: '${{ parameters.Site }} - Publish'
    inputs:
      solution: '*${{ parameters.Location }}/${{ parameters.Site }}.csproj'
      msbuildVersion: '15.0'
      msbuildArchitecture: 'x64'
      platform: 'anycpu'
      configuration: '${{ parameters.Configuration }}'
      msbuildArguments: '/p:PublishProfile=$(Build.SourcesDirectory)\${{ parameters.Location }}\Properties\PublishProfiles\STARS.Website.Publish.Profile.pubxml'


  - task: PublishBuildArtifacts@1
    displayName: 'Publish Artifacts'
    inputs:
      pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
      artifactName: '${{ parameters.Site }}'

pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>True</ExcludeApp_Data>
    <publishUrl>$(Build.ArtifactStagingDirectory)</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>

【问题讨论】:

    标签: azure-devops yaml azure-pipelines csproj pubxml


    【解决方案1】:

    您可以在构建参数中覆盖publishUrl

    /p:publishUrl=$(Build.ArtifactStagingDirectory)
    

    所以在你的 pubxml 中放置一个占位符:

    <publishUrl>Placeholder-You-Want</publishUrl>
    

    在你的 YAML 中:

    msbuildArguments: '/p:PublishProfile=$(Build.SourcesDirectory)\${{ parameters.Location }}\Properties\PublishProfiles\STARS.Website.Publish.Profile.pubxml /p:publishUrl=$(Build.ArtifactStagingDirectory)'
    

    【讨论】:

      猜你喜欢
      • 2020-03-21
      • 2020-04-18
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2020-06-10
      • 2022-01-03
      • 2020-11-16
      相关资源
      最近更新 更多