VSTS 构建不获取 dacpac 文件(云中的托管代理)
VSTS build doesn't pickup the dacpac file (hosted agent in cloud)
我正在尝试使用 VSTS 部署到我的数据库中,问题出在我需要获取 dacpac 文件并将其部署到 Azure SQL 服务器的步骤之一,但它失败了:
在那一步中,我使用的是 Microsoft 在 VSTS 中提供的“Execute Azure SQL: DacpacTask”。
有一个名为“DACPAC 文件”的文件可以做到这一点,文档中说要像这样使用它:
$(agent.releaseDirectory)\AdventureWorksLT.dacpac
但它给了我以下错误:
No files were found to deploy with search pattern
d:\a\s$(agent.releaseDirectory)\AdventureWorksLT.dacpac
所以我作弊并在其中输入以下值:
d:\a\s\AdventureWorksLT.dacpac
它确实有效,但显然,它不会永远有效,因为我需要使用环境变量,例如:
$(agent.releaseDirectory)\AdventureWorksLT.dacpac
有什么建议吗?
我也遇到过同样的问题。我找不到详细的文档,但通过实验,我发现了这一点。
我假设您的 DACPAC 是作为构建解决方案任务的一部分创建的。构建完成并创建 DACPAC 后,它位于 $(System.DefaultWorkingDirectory) 目录的子文件夹中。
显然,Azure SQL 数据库部署任务无法访问 $(System.DefaultWorkingDirectory) 文件夹。所以必须将文件复制到可以访问的地方。所以这就是我所做的:
- Visual Studio 构建任务构建解决方案,包括 DACPAC。生成的 DACPAC 放在 $(System.DefaultWorkingDirectory) 子文件夹中。
- 添加复制文件任务作为下一步。源文件夹 属性 应该是“$(System.DefaultWorkingDirectory)”。内容 属性 应该是“**/YourDacPacFilename.dacpac”。目标文件夹应该是 $(build.artifactstagingdirectory)。 “**/”告诉 VSTS 在所有子文件夹中搜索匹配文件。
- 添加 Azure SQL 数据库部署任务以部署实际的 DACPAC。 DACPAC 文件将位于 $(build.artifactstagingdirectory) 中。
我遇到了同样的问题,我通过从版本中删除旧工件并再次添加它以获取新工件的正确别名来解决它。
这就是为什么 Azure SQL 数据库部署任务说它无权访问 $(System.DefaultWorkingDirectory) 文件夹,工件已更改,您必须确保您使用的是已保存的新工件在蔚蓝的管道中。
我正在尝试使用 VSTS 部署到我的数据库中,问题出在我需要获取 dacpac 文件并将其部署到 Azure SQL 服务器的步骤之一,但它失败了: 在那一步中,我使用的是 Microsoft 在 VSTS 中提供的“Execute Azure SQL: DacpacTask”。 有一个名为“DACPAC 文件”的文件可以做到这一点,文档中说要像这样使用它:
$(agent.releaseDirectory)\AdventureWorksLT.dacpac
但它给了我以下错误:
No files were found to deploy with search pattern d:\a\s$(agent.releaseDirectory)\AdventureWorksLT.dacpac
所以我作弊并在其中输入以下值:
d:\a\s\AdventureWorksLT.dacpac
它确实有效,但显然,它不会永远有效,因为我需要使用环境变量,例如:
$(agent.releaseDirectory)\AdventureWorksLT.dacpac
有什么建议吗?
我也遇到过同样的问题。我找不到详细的文档,但通过实验,我发现了这一点。
我假设您的 DACPAC 是作为构建解决方案任务的一部分创建的。构建完成并创建 DACPAC 后,它位于 $(System.DefaultWorkingDirectory) 目录的子文件夹中。
显然,Azure SQL 数据库部署任务无法访问 $(System.DefaultWorkingDirectory) 文件夹。所以必须将文件复制到可以访问的地方。所以这就是我所做的:
- Visual Studio 构建任务构建解决方案,包括 DACPAC。生成的 DACPAC 放在 $(System.DefaultWorkingDirectory) 子文件夹中。
- 添加复制文件任务作为下一步。源文件夹 属性 应该是“$(System.DefaultWorkingDirectory)”。内容 属性 应该是“**/YourDacPacFilename.dacpac”。目标文件夹应该是 $(build.artifactstagingdirectory)。 “**/”告诉 VSTS 在所有子文件夹中搜索匹配文件。
- 添加 Azure SQL 数据库部署任务以部署实际的 DACPAC。 DACPAC 文件将位于 $(build.artifactstagingdirectory) 中。
我遇到了同样的问题,我通过从版本中删除旧工件并再次添加它以获取新工件的正确别名来解决它。 这就是为什么 Azure SQL 数据库部署任务说它无权访问 $(System.DefaultWorkingDirectory) 文件夹,工件已更改,您必须确保您使用的是已保存的新工件在蔚蓝的管道中。