Используйте макросы Visual Studio в сценариях powershell, вызываемых из события сборки
Я хочу использовать скрипт powershell в событии сборки в Visual Studio, и мне нужно использовать некоторый макрос, определенный в самой Visual Studio.
Это мой пример сценария powershell:
"Updating version for Project:"
"$ProjectDir"
Затем в предварительном событии проекта я называю это так:
powershell.exe -file "$(SolutionDir)Resources\UpdateVersion.ps1" -path $(SolutionDir)
Когда я строю проект, я правильно вызываю скрипт, но строка, содержащая путь к проекту, пуста.
Есть ли способ передать все макросы visual studio в скрипт powershell, не передавая их явно в качестве аргументов скрипта (я должен использовать их много, и это будет утомительно)?
1 ответ
Поздний ответ, но я надеюсь, что это поможет кому-то.
В событии Pre-Build вы передаете $(SolutionDir) с использованием аргумента «-path», но в сценарии PowerShell вы никогда не используете аргумент «-path». Похоже, вы пытались сослаться на него как "$ProjectDir".
Объяснение того, как использовать именованные аргументы в PowerShell, выходит за рамки этого вопроса, поэтому я переключусь на использование позиционных аргументов.
Измените свой сценарий PowerShell следующим образом:
param($solution, $project)
Write-Host $solution
Write-Host $project
Затем измените событие сборки на:
powershell.exe -file "$(SolutionDir)Resources\UpdateVersion.ps1" $(SolutionDir) $(ProjectDir)