So we are trying to deprecate some of our existing classes, and have started marking them as obsolete with the ObsoleteAttribute so they will stop being used. The fact that
Could you just use a #pragma
listing the appropriate warning number?
#pragma warning (C# Reference)
EDIT
Found this but it's a bit late C# - Selectively suppress custom Obsolete warnings
Use this to disable the corresponding warnings just before the offending line:
#pragma warning disable 612, 618
And reenable the warnings after it:
#pragma warning restore 612, 618
Curiously enough, there're 2 warnings related to this: CS0612 and CS0618 - one is for [Obsolete]
and the other for [Obsolete("Message")]
. Go figure...
If you want to avoid having to pepper your code with #prgrama
s, try this:
In your csproj file, find the appropriate PropertyGroup
element and add
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
here's a snippet from one of my project files:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
<NoWarn>
</NoWarn>
<WarningsAsErrors>
</WarningsAsErrors>
</PropertyGroup>
I've used this successfully with VS2010, VS2012, and VS2013 projects.