首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成DACPAC文件

如何生成DACPAC文件
EN

Stack Overflow用户
提问于 2020-09-21 12:43:41
回答 1查看 2.8K关注 0票数 3

我正试图通过IIS网站和SQL部署在Azure DevOps中部署我的项目。但是,由于构建工件中没有.dacpac文件,所以我很难部署SQL。我如何生成这个选项,作为我尝试过的任何选项,最终导致进程失败。

由于限制,我无法访问正在部署的VM。当我在机器上标记为DBO时,我可以访问数据库。

我的问题也是,我是否需要通过每次构建生成这个DACPAC文件,或者它只能生成一次,存储在机器上,并且我从部署过程指向那个文件?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-09-21 14:53:32

然而,

很难部署SQL,因为我的构建工件中没有.dacpac文件。我如何生成这个选项,作为我尝试过的任何选项,最终导致进程失败。当我在机器上标记为DBO时,我可以访问数据库。

  1. 首先您必须通过导入活动数据库的对象来使用SSDT (或Azure Database内部人员预览)创建Server数据库项目。

数据库项目将被放置到一个存储库()中。

  1. 管道(经典或yaml)有一个生成任务MSBuild@1。下面是一个YAML示例。它生成dacpac

代码语言:javascript
复制
- task: MSBuild@1
    displayName: 'Build solution YourDatabase.sln'
    inputs:
      solution: 'src/YourDatabase.sln'

此任务编译数据库项目并生成dacpac文件。

然后提取

  1. 生成的文件:

代码语言:javascript
复制
- task: CopyFiles@2
    displayName: 'Extract DACPACs'
    inputs:
        CleanTargetFolder: false
        SourceFolder: '$(agent.builddirectory)\s\src\YourDatabase\bin\Debug\'
        Contents: '*.dacpac'
        TargetFolder: '$(build.artifactstagingdirectory)'

  1. ,最后,作为

出版

代码语言:javascript
复制
  - task: PublishPipelineArtifact@1
    displayName: 'Publish Artifact'
    inputs:        
        targetPath: '$(build.artifactstagingdirectory)'
        artifact: 'drop'

dacpac的

  1. 部署是最终目标,可以使用SqlDacpacDeploymentOnMachineGroup@0完成,但是,这超出了最初问题

的范围。

我的问题也是,我需要通过每次构建生成这个DACPAC文件,还是只能生成一次,存储在机器上,并且从部署过程指向那个文件?

那得看情况。

  • 经典管道有构建和发布阶段的分离。在这种情况下,您可以构建它一次,并在以后的许多版本中重用该dacpac。

  • 的情况下,每个管道运行都会触发构建和部署阶段,因为它们仍然属于同一个管道,并且作为一个单元工作运行。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63992521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档