vs2019 post build - есть ли способ сделать $ (TargetDir) доступным в пакетных файлах? - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь найти способ упростить сборку постов. В настоящее время у меня есть это

----- Что я делаю ---------------

setlocal
set postBuildPathScript=E:\OneDrive\LinqPad\LINQPad Queries\BuildScripts\Post-Build.linq
set vsOutDir=$(OutDir)
set vsConfigurationName=$(ConfigurationName)
set vsProjectName=$(ProjectName)
set vsTargetName=$(TargetName)
set vsTargetPath=$(TargetPath)
set vsProjectPath=$(ProjectPath)
set vsProjectFileName=$(ProjectFileName)
set vsTargetExt=$(TargetExt)
set vsTargetFileName=$(TargetFileName)
set vsDevEnvDir=$(DevEnvDir)
set vsTargetDir=$(TargetDir)
set vsProjectDir=$(ProjectDir)
set vsSolutionFileName=$(SolutionFileName)
set vsSolutionPath=$(SolutionPath)
set vsSolutionDir=$(SolutionDir)
set vsSolutionName=$(SolutionName)
set vsPlatformName=$(PlatformName)
set vsProjectExt=$(ProjectExt)
set vsSolutionExt=$(SolutionExt)

pushd $(ProjectDir)
if not exist "%postBuildPathScript%" goto END

:POST_BUILD
echo Running post build ...
lprun6.exe "%postBuildPathScript%"
goto END

:END
echo ... Done post build.

popd
endlocal

Я нахожу это быть слишком много вещей и, честно говоря, со многими многими проектами, которые я делаю для каждого проекта, меня не привлекает.

Что я действительно хочу сделать, так это просто включить это в мою пост-сборку ...

- то, что я хочу сделать -----

call "$(ProjectDir)Post-Build.bat"

... тогда из WITHIN мой файл Post-Build.bat (или сценарий powershell или linqpad) получим доступ к переменным среды после сборки, например $ (ProjectDir) $ (ConfigurationName) $ (TargetPath) et c et c

К сожалению, я не могу найти способ получить доступ к vs переменные среды после сборки (из файла .bat) без явной передачи их в .bat или powershell в аргументах командной строки from.

----- Что я сделал ----- ----

lprun6.exe "E:\OneDrive\LinqPad\LINQPad Queries\BuildScripts\Post-Build.linq"  "-OutDir:$(OutDir) -ConfigurationName:$(ConfigurationName) -ProjectName:$(ProjectName) -TargetName:$(TargetName) -TargetPath:$(TargetPath) -ProjectPath:$(ProjectPath) -ProjectFileName:$(ProjectFileName) -TargetExt:$(TargetExt) -TargetFileName:$(TargetFileName) -DevEnvDir:$(DevEnvDir) -TargetDir:$(TargetDir) -ProjectDir:$(ProjectDir) -SolutionFileName:$(SolutionFileName) -SolutionPath:$(SolutionPath) -SolutionDir:$(SolutionDir) -SolutionName:$(SolutionName) -PlatformName:$(PlatformName) -ProjectExt:$(ProjectExt) -SolutionExt:$(SolutionExt)"

Насколько я понимаю, после сборки vs2019 все, что находится в текстовом поле после сборки, внутренне преобразуется в файл .bat (по существу) и выполняется.

Всегда есть расширение VS / маршрут надстройки, но я не касался этого стека API с момента появления визуальных основ c 2005. И моя недавняя попытка вернуться к разработке надстроек была вызовом для пробуждения. как отвратительно, грязно и дезориентирующе пытаться сделать и Nuget Publi sh расширение для vs сейчас дней. Сравните это с тем, насколько легкими, простыми и понятными были все эти годы go у sh! Честно говоря, я не хочу пытаться go по этому маршруту. (если я могу помочь)

Так что я думаю, что, возможно, спрашиваю о невозможном, если только я не знаю, как передать несколько переменных окружения .bat навалом в очень простом c низком трении манера. Есть мысли?

...