15

根据 PostSharp 推荐的最佳实践,我的所有项目中都包含了 PostSharp。但是,我在其中一些程序集中没有任何方面或其他转换;他们只是参考了其他确实有使用方面的项目。

在构建时,我收到以下警告:

模块“xxxxxxx.dll”不包含任何方面或其他转换。为了提高构建时性能,请考虑通过在项目中设置编译符号(又名常量)“SkipPostSharp”或设置 MSBuild 属性“SkipPostSharp=True”来禁用此模块的 PostSharp。

感谢您的信息,PostSharp!但我“考虑过为此模块禁用 PostSharp”并决定不这样做。我很高兴失去一点构建时性能,以换取以后当我决定在以前没有方面的项目中使用 PostSharp 时不必考虑它。

如何让 PostSharp 停止告诉我这个提示,并且不启用SkipPostSharp

4

2 回答 2

14

在 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>
于 2013-09-26T10:36:39.430 回答
5

您可以通过将文件添加到使用以下内容调用的解决方案文件夹来消除解决方案中所有项目的这些警告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禁用

项目“<程序集名称>”不包含任何方面或其他转换。您可以通过在 Visual Studio 中编辑项目属性来为此项目禁用 PostSharp。如果您向此项目添加方面,请记住重新启用 PostSharp。

LA0156禁用

缺少有关方面类型“<完整类型名称>”的代码保存信息。代码保存指标将不准确。将 [LinesOfCodeAvoided] 添加到方面类或指定通知自定义属性的 LinesOfCodeAvoided 属性或忽略警告 LA0156。

于 2016-04-11T14:10:45.237 回答