У меня есть файл визуальной студии, содержащий несколько проектов.Обновление конфигурации проектов Visual Studio для каждого проекта в файле решения Visual Studio
Для данной конфигурации решения, например Dev, некоторые из проектов используют конфигурацию Debug. Я хочу, чтобы все проекты использовали конфигурацию Dev для конфигурации решения Dev.
Вместо использования Configuration Manager и обновления конфигурации каждого проекта для всех возможных вариантов платформы (x64, Any CPU, Mixed Platforms), я хочу иметь возможность автоматизировать это. С помощью Configuration Manager очень утомительно обновлять эту конфигурацию для всех конфигураций решений для всех проектов.
Потому что у меня более 5 конфигураций решений, и в решении есть более 20 проектов.
Редактирование файла решения в блокноте ++ поможет мне догадаться. Я еще должен попробовать это. Но разве это единственный способ?
Update:
я подготовил простой PS сценарий для достижения этой цели с помощью Powershell для обновления Sln файла, для одной Sln конфигурации. Но ищем альтернативные способы.
$content = Get-Content "E:\SlnFolder\SolutionFile.sln" | ForEach-Object {
$line = $_
if ($line -match "(^\s*{[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+}.Dev\|[a-zA-Z0-9\.\s]+ =)([a-zA-Z\s]+)")
{
$line -replace "(^\s*{[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+}.Dev\|[a-zA-Z0-9\.\s]+ =)([a-zA-Z\s]+)",'$1Dev'
}
else
{
$line
}
} | Set-Content -Path "E:\SlnFolder\SolutionFile_Updated.sln"
Существует достаточно места для полировки этого скрипта. Будет проверять это.
Альтернатива заключается в редактировании файлов через Microsoft.Build.BuildEngine, смотри, например, http://stackoverflow.com/questions/7887538/modify-programatically-csproj-files#8492560 – stijn
@stijn - Ответ, обсуждаемый в приведенной вами теме, теперь устарел. Я нашел еще один поток [http://stackoverflow.com/questions/707107/parsing-visual-studio-solution-files], где есть ответ на новый способ использования Microsoft.Build.Construction.SolutionFile.Parse () с VS 2015. Путь MSBuild - это C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ MSBuild \ v14.0 \ Microsoft.Build.dll –
Я не уверен, что это действительно устарело? Обратите внимание, что это касается изменений * проектов *, вопрос, на который вы ссылаетесь, касается * решений *. Хотя для вашего дела вам, вероятно, нужны оба. – stijn