Настройка всех сборок .NET
Методы, описанные в этой статье, полезны, если требуется настроить все сборки, выполняемые на определенном компьютере, виртуальной машине или контейнере. Например, при настройке сервера сборки может потребоваться глобально настроить параметры MSBuild для всех сборок на сервере. В принципе, вы можете изменить глобальные файлы Microsoft.Common.Targets или Microsoft.Common.Props, однако существует лучший способ. Вы можете оказать влияние на все сборки определенного типа проекта (например, все проекты C#), используя определенные свойства MSBuild и добавив определенные пользовательские файлы .targets
и .props
.
До и после стандартных файлов props и .targets
Чтобы повлиять на все сборки C# или Visual Basic, управляемые при установке MSBuild или Visual Studio, создайте файл Custom.Before.Microsoft.Common.Targets или Custom.After.Microsoft.Common.Targets с целевыми объектами, которые будут выполняться до или после Microsoft.Common.targets или файл Custom.Before.Microsoft.Common.Props или Custom.After.Microsoft.Common.Props со свойствами, которые будут обработаны до или после Microsoft.Common.props.
Расположение этих файлов можно указать с помощью следующих свойств MSBuild:
- CustomBeforeMicrosoftCommonProps
- CustomBeforeMicrosoftCommonTargets
- CustomAfterMicrosoftCommonProps
- CustomAfterMicrosoftCommonTargets
- CustomBeforeMicrosoftCSharpTargets
- CustomBeforeMicrosoftVisualBasicTargets
- CustomAfterMicrosoftCSharpTargets
- CustomAfterMicrosoftVisualBasicTargets
Обычные версии этих свойств влияют как на проекты C#, так и на Visual Basic. Эти свойства можно задать в командной строке MSBuild.
msbuild /p:CustomBeforeMicrosoftCommonTargets="C:\build\config\Custom.Before.Microsoft.Common.Targets" MyProject.csproj
Предупреждение
Visual Studio использует пользовательские файлы .targets
или .props
, если находит их в папке MSBuild при сборке любого проекта соответствующего типа. Это может иметь непредвиденные последствия и при неправильном завершении может отключить функцию построения на компьютере для Visual Studio.
Замена общего файла props
Вы также можете использовать свойства AlternateCommonProps
, чтобы указать собственный .props
файл для использования вместо Microsoft.Common.props. Если вы когда-либо чувствовали необходимость настроить Microsoft.Common.props , изменив его напрямую, вы можете скопировать стандартную версию этого файла в другой файл, а затем внести изменения только в альтернативную версию.
Наилучший подход зависит от вашего сценария. Благодаря расширяемости Visual Studio вы можете настроить систему сборки и реализовать механизм для установки настроек и управления ими.
Если у вас есть выделенный сервер сборки и вы хотите убедиться, что определенные целевые объекты всегда будут выполняться во всех сборках соответствующего типа проекта, выполняемого на этом сервере, то целесообразно использовать глобальный пользовательский файл .targets
или .props
. Если необходимо, чтобы пользовательские целевые объекты выполнялись только при определенных условиях, используйте другое расположение файла и установите путь к этому файлу, задав соответствующее свойство MSBuild в командной строке MSBuild.