2013-09-26 1 views
14

PostSharpの推奨ベストプラクティスに従って、すべてのプロジェクトにPostSharpが含まれています。しかし、これらのアセンブリの中には、側面やその他の変形がありません。彼らはちょうどを行う他のプロジェクトを参照するは使用中の側面を持っています。ビルド時のポストシャープ警告をスキップせずにPostSharp

モジュールは任意の態様又は他の変換が含まれていない「xxxxxxx.dll」:

は、ビルド時に、私は次の警告が表示されます。ビルド時のパフォーマンスを向上させるには、プロジェクトでコンパイルシンボル(別名定数) 'SkipPostSharp'を設定するか、MSBuildプロパティ 'SkipPostSharp = True'を設定してこのモジュールのPostSharpを無効にすることを検討してください。

PostSharp!しかし、私は "このモジュールのためにPostSharpを無効にすることを検討して"、そうしないことに決めました。私は、以前には面がなかったプロジェクトでPostSharpを使うことにしたときに、後でそれについて考えなくて済むのと引き換えに、ほんの少しのビルドタイムパフォーマンスを失うのは大変嬉しいです。

SkipPostSharpを有効にせずに、このヒントについて教えてくれるようにPostSharpを停止させる方法を教えてください。プロジェクトのプロパティで

答えて

13

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> 
+3

PS0131でしたが、よろしくお願いします。この無効化された警告セクションが存在するかどうかはわかりませんでした。 –

+0

"PostSharpタブ"を見るために余分なものをインストールしなければならないのですか?私たちはクライアント上に何もインストールせずにそれを使用するので、私はそのようなタブを表示しません。私はこれがなければそれをする方法があるとは思わない? – PandaWood

+0

Visual Studio用のPostSharpツールをインストールして、[プロジェクトプロパティ]ウィンドウの[PostSharp]タブを表示する必要があります。 https://www.postsharp.net/downloadから入手できます。 –

3

あなたがコンテンツと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を無視します。

関連する問題