如何在Azure DevOps构建中获取脚本的路径(不是过程)?
我正在尝试获取我的解决方案或项目文件的路径,以在Visual Studio数据库项目PostDeployment中使用。
本地工作
在Visual Studio数据库项目的Script.PostDeployment.sql文件中,我具有以下代码]
SELECT @solutionDir = REPLACE('$(SolutionPath)','MySoulution.sln','');
SET @File = @solutionDir + 'myScript.sql'
-- and here I can use the @File
当我执行本地发布/或构建时,可以使用变量/宏$(SolutionPath),在其中可以获得解决方案的完整本地路径。
因此,我可以指向我需要访问的脚本。
但是Azure DevOps版本没有$(SolutionPath)宏,但出现了[[以下错误
SCRIPT.POSTDEPLOYMENT.SQL(17,32,17,32): Build error SQL72008: Variable SolutionPath is not defined.
因此,我需要一种方法(在AzureDevops中)以获取脚本的路径。 我尝试过的在构建步骤中
$(Build.ArtifactStagingDirectory)
然后,我建议不要使用SQL来直接引用构建服务器的文件系统。如果绝对必要,则应使用环境变量。我建议为发布SQL脚本设置一个发布管道。发布管道实际上是为部署而设计的,而构建则是为编译而设计的。
要配置发行版,将其指向工件,然后您可以通过
$(System.DefaultWorkingDirectory)/**/*.zip
访问该工件,然后运行要执行的任何命令来对其进行处理。