Тихие предупреждения PostSharp при сборке без пропусков PostSharp
У меня есть PostSharp, включенный во все мои проекты, в соответствии с рекомендуемыми рекомендациями для PostSharp. Однако у меня нет каких-либо аспектов или других преобразований в некоторых из этих сборок; они просто ссылаются на другие проекты, которые имеют аспекты использования.
Во время сборки я получаю следующее предупреждение:
Модуль "xxxxxxx.dll" не содержит какого-либо аспекта или другого преобразования. Для повышения производительности за время сборки подумайте о отключении PostSharp для этого модуля, установив в свой проект символ компиляции (aka constant) "SkipPostSharp" или установите для свойства MSBuild "SkipPostSharp = True".
Спасибо за информацию, PostSharp! Но я "решил отключить PostSharp для этого модуля" и решил не делать этого. Я очень счастлив потерять крошечную производительность времени сборки, в обмен на то, что не нужно думать об этом позже, когда я решаю использовать PostSharp в проекте, ранее лишенном аспектов.
Как мне заставить PostSharp перестать рассказывать мне об этом намеке и не разрешать SkipPostSharp
?
Ответы
Ответ 1
В ваших свойствах проекта на вкладке PostSharp имеется строка "Отключенные сообщения (список с разделителями с двоеточием)"
В этом поле введите код для конкретного сообщения. Я не совсем уверен, что это такое, но попробуйте PS0121
В качестве альтернативы, если вы вручную отредактируете файл проекта "*.csproj", вы можете добавить элемент PostSharpDisableMessages в свою PropertyGroup для ваших соответствующих конфигураций, как показано ниже.
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
<PostSharpDisabledMessages>PS0131;PS0121</PostSharpDisabledMessages>
</PropertyGroup>
Ответ 2
Вы можете отключить эти предупреждения от всех проектов в своем решении, добавив файл в папку решений с именем PostSharp.Custom.targets
с контентом:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PostSharpDisabledMessages>LA0156;PS0131</PostSharpDisabledMessages>
</PropertyGroup>
</Project>
Где LA0156;PS0131
- это список разделенных запятой предупреждений, которые вы хотите отключить.
В частности PS0131
отключает
Проект '< имя сборки > ' не содержит какого-либо аспекта или другого преобразования. Вы можете отключить PostSharp для этого проекта, отредактировав свойства проекта в Visual Studio. Не забудьте включить PostSharp обратно, если вы добавите аспект в этот проект.
И LA0156
отключает
Отсутствует информация о сохранении кода по типу аспекта "< полное имя типа > ". Показатели с сохранением кода будут неточными. Добавьте [LinesOfCodeAvoided] в класс аспекта или укажите свойство LinesOfCodeAvoided настраиваемого атрибута совета или игнорируйте предупреждение LA0156.