我尝试使用VSTS部署到我的数据库中,问题在于我需要获取dacpac文件并将其部署到Azure SQL服务器但其失败的步骤之一: 在该步骤中,我使用" 执行Azure SQL:DacpacTask "这是由Microsoft在VSTS中提供的。 有一个要做的事情被称为" DACPAC文件"并且文档说要像这样使用它:
$(agent.releaseDirectory)\ AdventureWorksLT.dacpac
但它给了我以下错误:
未找到使用搜索模式部署的文件 d:\一个\ 1 \ S \ $(agent.releaseDirectory)\ AdventureWorksLT.dacpac
所以我做了一个作弊并把下面的值放在其中:
d:\一个\ 1 \ S \ AdventureWorksLT.dacpac
它确实有效,但显然,它不会永远工作,因为我需要使用环境变量,例如:
$(agent.releaseDirectory)\ AdventureWorksLT.dacpac
有什么建议吗?
答案 0 :(得分:8)
我遇到了同样的问题。我无法找到详细的文档,但通过实验,这就是我发现的。
我假设您的DACPAC是作为Build Solution任务的一部分创建的。构建完成并创建DACPAC后,它存在于$(System.DefaultWorkingDirectory)目录的子文件夹中。
显然,Azure SQL数据库部署任务无法访问$(System.DefaultWorkingDirectory)文件夹。因此必须将文件复制到可以访问的位置。所以这就是我所做的:
答案 1 :(得分:0)
我遇到了同样的问题,我通过从发行版中删除了旧的工件并再次添加它以获取新工件的正确别名来解决了这个问题。 这就是为什么Azure SQL数据库部署任务说它无权访问$ {System.DefaultWorkingDirectory)文件夹,工件已更改并且必须确保使用的是保存在蔚蓝管道中的新对象的原因。 / p>