В настоящее время я работаю над проектом по перепрофилированию, часть которого включает несколько десятков веб-сайтов, все из которых используют общий заголовок. Несколько из этих сайтов жили на одном компьютере, поэтому была установлена символическая ссылка, чтобы они могли ссылаться на один и тот же контент. Некоторые другие сайты были внешними, поэтому был установлен и использовался общий «includes.company.com».
Перейдите к сегодняшнему дню, и я пытаюсь настроить сайт "includes.company.com" в Visual Studio. Содержание достаточно простое. Я свел его к одному HTML-файлу и одному CSS-файлу вместе со всеми необходимыми изображениями.
То, что я сейчас пытаюсь выполнить, основано на текущей конфигурации сборки, чтобы вывести HTML и CSS с соответствующими ссылками, на которые можно ссылаться с внешних сайтов.
У меня сейчас событие после сборки, которое выглядит так ...
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "$(MSBuildProjectDirectory)\pbuild.ps1" "$(Configuration)" $(MSBuildProjectDirectory)
где pbuild.ps1 выглядит как
param ([string]$config, [string]$target)
If ($config -eq "Debug")
{
(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', 'http://dev.includes.company.com' | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', 'http://dev.includes.company.com' | set-content $target\Builds\$config\header.html
}
If ($config -eq "QA")
{
(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', 'http://qa.includes.company.com' | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', 'http://qa.includes.company.com' | set-content $target\Builds\$config\header.html
}
If ($config -eq "Release")
{
(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', 'http://includes.company.com' | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', 'http://includes.company.com' | set-content $target\Builds\$config\header.html
}
Это прекрасно работает для Debug и Release, но не для QA. Как я выяснил, переменная $ Configuration, кажется, всегда содержит только «Debug» или «Release», а не саму активную конфигурацию, которую я ищу.
FlavorToBuild показался многообещающим, но я чертовски потратил время на то, чтобы вытащить его в переменную, которую я могу использовать.
Есть ли переменная, которая настроена, чтобы дать мне то, что я ищу, имя активной конфигурации сборки? Есть ли способ назначить переменную в файле проекта, которую я затем смогу вставить в событие Post-Build? Это мой первый настоящий набег в этот мир, поэтому любая помощь или руководство по достижению этой цели высоко ценится.