Как упомянул @PeterSchott в предыдущем комментарии, решение легко реализовать с помощью сценариев Powershell и событий сборки до / после в Visual Studio.
Я выложу ответ здесь на тот случай, если кому-то понадобится его для справки (или, может быть, на случай, если он мне понадобится)
Первый:
Предварительно соберите скрипт powershell, он берет каталог проекта и заменяет все строки на 'COMPANY_NAME' на фактическое название компании в зависимости от конфигурации сборки для всех файлов с расширением .sql.
Далее:
Скрипт powershell:
if ($args[0] -eq "Release"){
$company_name = "ReleaseCorp";
}
$dboDir = $args[1] + 'dbo\';
$sqlFiles = Get-ChildItem $dboDir -rec | Where-Object {($_.Extension -eq ".sql")}
foreach ($file in $sqlFiles)
{
echo $file;
(Get-Content $file.PSPath) |
Foreach-Object { $_ -replace "COMPANY_NAME", $company_name } |
Set-Content $file.PSPath
}
Событие после сборки выполняет обратное, только на этот раз оно берет фактическое название компании для конфигурации и возвращает его в токен для будущих сборок.
Стоит отметить, что для того, чтобы Visual Studio могла запускать сценарии Powershell (x86), следующий шаг является обязательным:
Запустите Windows Powershell (x86) в режиме администратора и выполните:
набор-исполнение политики неограниченно
Больше информации об этом можно найти в информативном блоге Дэвида Фретта:
Создание событий до и после сборки Powershell для проектов Visual Studio