Как получить путь к сценарию (не к процедуре) в сборке DevOps Azure?
Я пытаюсь получить путь к файлу моего решения или проекта для использования в Проект базы данных Visual Studio PostDeployment .
Работает локально
В файле Script.PostDeployment.sql в Visual StudioПроект базы данных У меня есть следующий код
SELECT @solutionDir = REPLACE('$(SolutionPath)','MySoulution.sln','');
SET @File = @solutionDir + 'myScript.sql'
-- and here I can use the @File
Когда я делаю локальную публикацию / или сборку , я могу использовать переменную / макрос $ (SolutionPath), где я получаю полный локальный путь крешение.
После этого я могу указать на скрипт, к которому мне нужен доступ.
Сбой в AzureDevops
Но сборка Azure DevOps не имеет $ (SolutionPath)макрос и я получаю следующую ошибку
SCRIPT.POSTDEPLOYMENT.SQL(17,32,17,32): Build error SQL72008: Variable SolutionPath is not defined.
Поэтому мне нужен способ (в AzureDevops) на этапе сборки , чтобы получить путь к сценариям.
То, что я пробовал
- Я пробовал все виды макросов, которые просто не работают.
- Я пытался работать с предопределенными переменными
- Я пытался использовать SqlCommandVariableOverride , но, похоже, он пропал из проекта базы данных некоторое времяназад.
Вопросы
- Как я могу добавить $ (SolutionPath) (или что-то еще) к моему шагу сборки, чтобы это работало как локально, так и в сборке Azure DevOps?
- Есть ли другой способ получить URL-адрес решения или проекта в файле SQLCMD после развертывания?
- Является ли MSBuild Extension Pack чем-то, на что мне следует обратить внимание? Я сделаю это, если это мой единственный вариант.
ps
Я также создал билет для этого в Azure Pipelines Tasks , поскольку они, похоже, неэтот активный в ответе, и я не могу ждать.
es
Я задавал тот же вопрос в developercommunity.visualstudio.com . Будем надеяться, что кто-то там сможет ответить на этот вопрос. Если так, я обновлю этот вопрос ответом.