I am using FxCopCmd tool for static code analysis. Since we already had a huge codebase, we baselined existing issues using baseline.exe tool that comes with FxCop.
I am observing that if I add a new method to my C# class, then some of the suppression messages in GlobalSuppression.cs file stop working and I get issues for the code I haven't touched.
Example:
namespace ConsoleApplication1
{
    class Program
    {
        public async Task<string> method1()
        {
            string a = "";
            a.Equals("abc", StringComparison.InvariantCultureIgnoreCase);
            return a;
        }
        static void Main(string[] args)
        {
        }        
    }
}
This throws following error:
CA1031 : Microsoft.Design : Modify 'Program.d__0.MoveNext()' to catch a more specific exception than 'Exception' or rethrow the exception
To suppress the 'CA1309 UseOrdinalStringComparison' issue, I added following suppression message in GlobalSuppression.cs file
[module: SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison", Scope="member", Target="ConsoleApplication1.Program.d__0.MoveNext()", MessageId="System.String.Equals(System.String,System.StringComparison)", Justification="")]
But if I add one more method in the class, then this suppression message stops working. This is because method1 is async and so a new class is created (refer this) in compiled code (which was <method1>d__0 in the first case). But when I add another method before method1, then the new class created in compiled code is named <method1>d__1. Consequently, the suppression message is not applied and FxCop again starts showing errors in the code.
Is there any way to suppress FxCop errors for async methods permanently?
 
    