Можно ли выбрать, какие проекты обрабатывает PostSharp, вместо того, чтобы указать, какие из них исключить? - PullRequest
5 голосов
/ 22 марта 2012

Я могу указать константу SkipPostSharp, чтобы обеспечить исключение проекта из списка процессов PS проектов. Я хочу сделать это наоборот. Я хочу, чтобы PS предположил, что он не должен обрабатывать ничего, о чем я специально не говорю.

Это достижимо?

1 Ответ

14 голосов
/ 22 марта 2012

Существует три условия автоматической обработки проекта PostSharp:

  1. PostSharp был установлен с помощью программы установки.
  2. Проект имеет ссылку (прямую или косвенную)) в PostSharp.dll.
  3. Свойство MSBuild SkipPostSharp отличается от true, а символ компиляции SkipPostSharp не определен.

Третье условие - это то, что становится ложным при отключении PostSharp путем проверкиопция в свойствах проекта VS.

Вы можете отключить PostSharp по умолчанию, установив свойство SkipPostSharp = True по умолчанию.Это может быть достигнуто путем создания файла с именем PostSharp.Custom.targets в одном из родительских каталогов ваших проектов со следующим содержимым:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
     <SkipPostSharp Condition="'$(SkipPostSharp)'==''">True</SkipPostSharp>
  </PropertyGroup>
</Project>

Затем в каждом проекте, где на самом деле нужен PostSharp, выпотребуется определить свойство SkipPostSharp = False.Это необходимо сделать с помощью текстового редактора, поскольку на вкладке свойств проекта можно только установить для свойства значение True или отменить его определение.

...