繁体   English   中英

Azure DevOps 管道从使用 Asp.Net MVC + 数据库项目的解决方案中获取 DACPAC

[英]Azure DevOps pipeline get DACPAC from Solution with Asp.Net MVC + Database Projects

我有一个包含 2 个项目的 Visual Studio 解决方案 (.sln):

  • ASP.NET MVC(主体)生成 zip,所有文件都在 IIS 中发布
  • 生成.dacpac 文件以在 SQL-Server 中发布的数据库项目

我生成了一个管道来生成 Web 和 DB 项目的工件,但它不包含 .dacpac 文件。

这是我的 yml:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@1
  inputs:
    Contents: '*.dacpac'
    TargetFolder: '$(build.artifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

我尝试将数据库项目添加为 Web 项目的依赖项,但我得到了相同的结果。

我不确定它是否正在生成它:

管道作业运行的结果

我尝试手动复制(正如您在 yml 上看到的那样)但没有找到它: 手动复制时找不到文件

任何想法?

解决了 CopyFile 任务中更改源文件夹和内容的问题

- task: CopyFiles@1
  inputs:
    SourceFolder: '$(System.DefaultWorkingDirectory)'
    Contents: 'it-EMDB/bin/$(BuildConfiguration)/*'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM