Я не совсем уверен (не установлена сборка команды), но очень вероятно, что когда вы изменяете такие свойства в проекте TFSBuild, они не распространяются на ваши файлы фактических проектов, поскольку реальные решения / проекты созданный путем запуска другой задачи MSBuild, и ответственная цель в Microsoft.TeamFoundation.Build.targets не передает эти свойства задаче.
Например, это целевой "CallCompile" в вышеупомянутом файле (опять же, я не уверен, что это то, что использует ваш сценарий сборки, но идея та же):
<Target Name="CallCompile" DependsOnTargets="$(CoreCompileDependsOn)">
<!-- Pass in all properties that users might want during the course of the compile targets. -->
<MSBuild Projects="$(MSBuildProjectFile)"
Properties="a lot of properties, but not DebugSymbols etc"
Targets="CoreCompile">
</MSBuild>
</Target>
Таким образом, вы могли бы уйти, добавив нужные свойства в файл целей, но:
- это означает, что вы должны изменять этот файл при каждом обновлении
- это может быть нежелательное поведение для всех ваших проектов
- последнее, но не менее важное: если вызываемые файлы проекта также содержат DebugSymbols / ..., значения свойств в вашем файле просто переопределяют значения, переданные задачей MSBuild, поэтому в конечном итоге вам все равно придется изменить все файлы проекта на справиться с этим
Один из способов добиться того, чего вы хотите, - это написать скрипт на выбранном вами языке, который перечисляет все файлы * .csproj в определенном каталоге, а затем изменяет каждый файл, заменяя true на false. Или даже быстрее: выполните поиск по * .csproj в проводнике, сразу откройте все файлы в редакторе и выполните поиск / замену всех открытых файлов.