Azure Devops - SSDT DB 构建错误 - 写入 model.xml

Posted

技术标签:

【中文标题】Azure Devops - SSDT DB 构建错误 - 写入 model.xml【英文标题】:Azure Devops - SSDT DB build error - writing model.xml 【发布时间】:2020-05-06 02:54:32 【问题描述】:

我在 Azure DevOps 中的 SSDT 项目出现以下构建错误:

System.IO.DirectoryNotFoundException: Could not find a part of the path 'd:\a\1\s\SSDTPROJECTNAME\SSDTPROJECTNAMEobj\Release\Model.xml'.

在构建的早期,它会尝试将 Model.xml 文件写入无效路径:

SqlBuild:
  Creating a model to represent the project...
    Loading project references...
    Loading project files...
    Building the project model and resolving object interdependencies...
    Validating the project model...
    Writing model to SSDTPROJECTNAMEobj\Release\Model.xml...

由于某种原因,它无法将我的项目文件夹名称与 obj\Release\Model.xml 连接起来。但是当我在本地构建时,它会将 model.xml 写入有效位置。对于项目文件夹,我使用一个名为 $(projectDir) 的变量设置为我的项目文件夹名称。

我正在将 VSBuild@1 与 windows 最新的 vmImage 一起使用。

这是我的任务:

- task: VSBuild@1
  displayName: "Build DB project"
    inputs:
      solution: "$(projectDir)\SSDTPROJECTNAME.sqlproj"
      msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:DeleteExistingFiles=True /p:PackageLocation="$(Build.ArtifactStagingDirectory)\\"'
      configuration: "$(BuildConfiguration)"
      clean: true

【问题讨论】:

【参考方案1】:

“projectDir”变量是 VS Build 的保留关键字。如果您更改为不同的变量应该可以解决问题。

https://docs.microsoft.com/en-us/cpp/build/reference/common-macros-for-build-commands-and-properties?view=vs-2019

【讨论】:

以上是关于Azure Devops - SSDT DB 构建错误 - 写入 model.xml的主要内容,如果未能解决你的问题,请参考以下文章

Azure Devops 构建管道上的数据库项目失败

Azure DevOps系列Azure DevOps构建.NET EFCore应用程序

如何在 Azure DevOps 中自动触发构建拉取请求?

text 创建构建代理 - devops azure(TFS在线)

如何修复 azure-devops 构建步骤中的““复制”任务不支持复制目录”?

Azure Devops构建SSIS任务