2016-05-26 58 views
1

、私は警告のこれらの並べ替え抑制したいと思います:Visual Studioでアセンブリ参照の警告を抑制する方法は? Visual Studioの2015年に

enter image description here

をしかし、彼らは警告識別子を持っていないようですので、私はthisのようなソリューションを適用することはできません。


私は警告を理解し、彼らは、私は、私のプロジェクトはすでにproperllyこれらのアセンブリを処理しているそれらを非表示にするfriendlly方法そこらでresolubleではありませんが、私は警告がresolubleていない理由を説明します:

私のソリューションは2つのソリューション構成を持っています.1つは.NetFx4の下でソリューションをコンパイルし、もう1つは.NetFx45のために、私は条件付きのコンパイル定数と手動のステップを使用するため、変更後にソリューションのターゲットフレームワークを手動で変更する必要があるソリューション構成。したがって、ソリューションは.NetFx4の代わりに.NetFx4をターゲットにするように構成されている場合に警告が表示されますが、ソリューションエクスプローラではアセンブリこれらのアセンブリをdeplymentフォルダにコピーしないように設定されています。また、これらのアセンブリをインポートするクラスも条件付きコンパイル定数の中にあるため、実際にはエラーのリスクがあります。

答えて

2

これらはMSBuildの警告であり、コンパイラやコード分析に関する警告ではありません。エラーリストに表示されない場合でも、Visual Studioの出力ウィンドウにエラーコード(例:MSB3268)が表示されるはずです。

つまり、プラグマもSuppressMessage属性もこれらのために機能しないため、これらを非表示にすることは簡単ではありません。 MSBuild ResolveAssemblyReferenceタスクはこれらの警告を生成し、警告が生成されないように見えるように見えるプロパティを持っていますが、v4.0フレームワークを対象とするときには完全に機能しません。 (作業を行っても、を経由してインポートされたResolveAssemblyReferencesターゲットをオーバーライドして、タスクのプロパティに値をプッシュする必要があります。長期的なメンテナンスの頭痛が加わります)。

実際にここで役立つことが1つあります.4.0フレームワークを対象とするときに参照を含めないでください。例えば(あなたの.csprojファイル内):

<ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Core" /> 
    ... 
</ItemGroup> 
<ItemGroup Condition="'$(TargetFrameworkVersion)' != 'v4.0'"> 
    <Reference Include="Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> 
    <HintPath>..\packages\Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory.4.0.209160138-alpha\lib\net45\Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory.dll</HintPath> 
    <Private>True</Private> 
    </Reference> 
    ... 
</ItemGroup> 

重要なビットは、ターゲットフレームワークが4.0でない場合にのみ、グループ内の参照を含めることのMSBuildを指示二ItemGroup上の条件、です。

このアプローチはあなたの意図に非常によく似ているので、(たとえ可能であったとしても)警告を抑制することが望ましいと思われます。しかし、ちょっとした面倒があります。IDEは直接参照されているアセンブリのそれぞれについて、「参照されたコンポーネントが見つかりませんでした」という警告を生成し、これを防ぐために何もできないように見えます。一方、直接参照される除外アセンブリごとに1つの警告は、直接参照アセンブリのそれぞれによって参照される各フレームワークアセンブリに対して1つの警告よりもかなり優れています。

関連する問題