" GetDirectoryName"用" 1"参数:"路径不是合法形式。" - SQL Server VSTS CI-CD部署

时间:2018-05-31 08:56:00

标签: sql-server continuous-integration azure-devops continuous-deployment azure-pipelines-release-pipeline

我一直在研究VSTS,以便持续集成/部署到内部部署服务器。我已经从VSTS Git存储库(包括Customer和Country表)在我的构建中成功构建了一组虚拟工件。我通过.dacpac成功部署了部署,但我希望通过基于脚本的部署来复制它。

对于构建,我发布了所有工件,我的sql文件位于此处:

List of Artifcats

在发布任务中,我正在使用SQL数据库部署任务。我用于.sql而不是.dacpac部署的设置如下:

Development

SQL Deployment

Deploy to Dev

发布失败了' 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)并收到同样的错误。

我希望有人可以查看我的配置,并确定我的理解不足之处?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并尝试放入工作目录变量并且它起作用了。例如 $(System.DefaultWorkingDirectory)/**/*.sql