Я пытаюсь найти способ упростить сборку постов. В настоящее время у меня есть это
----- Что я делаю ---------------
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 низком трении манера. Есть мысли?