我一直在研究VSTS,以便持续集成/部署到内部部署服务器。我已经从VSTS Git存储库(包括Customer和Country表)在我的构建中成功构建了一组虚拟工件。我通过.dacpac成功部署了部署,但我希望通过基于脚本的部署来复制它。
对于构建,我发布了所有工件,我的sql文件位于此处:
在发布任务中,我正在使用SQL数据库部署任务。我用于.sql而不是.dacpac部署的设置如下:
发布失败了' Deploy to Dev'具有以下日志的任务:
2018-05-31T08:14:21.4218768Z ##[section]Starting: Deploy to Dev
2018-05-31T08:14:21.4233677Z ==============================================================================
2018-05-31T08:14:21.4233951Z Task : SQL Server Database Deploy
2018-05-31T08:14:21.4234238Z Description : Deploy to SQL Server Database using DACPAC or SQL scripts
2018-05-31T08:14:21.4234458Z Version : 0.3.10
2018-05-31T08:14:21.4234642Z Author : Microsoft Corporation
2018-05-31T08:14:21.4234859Z Help : [More Information](https://aka.ms/sqldacpacmachinegroupreadme)
2018-05-31T08:14:21.4235150Z ==============================================================================
2018-05-31T08:14:24.2246881Z ##[error]Exception calling "GetDirectoryName" with "1" argument(s): "The path is not of a legal form."
2018-05-31T08:14:24.2348684Z ##[section]Finishing: Deploy to Dev
我原以为使用**/*.sql
通配符意味着它会循环遍历所有SQL文件并执行。我也尝试过jsut要求它执行客户文件(**/Customer.sql
)并收到同样的错误。
我希望有人可以查看我的配置,并确定我的理解不足之处?
非常感谢提前。
答案 0 :(得分:1)
我遇到了同样的问题并尝试放入工作目录变量并且它起作用了。例如 $(System.DefaultWorkingDirectory)/**/*.sql