Настройка всех сборок .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 только при необходимости.