В общем, я не думаю, что это действительно имеет значение. Поскольку это атрибут (фактически метаданные), он не влияет на производительность кода. При этом помните, что информация в атрибуте доступна любому, кто использует дизассемблер, например, Reflector.
Проблема с сохранением их в файле проекта FxCop заключается в том, что вы должны убедиться, что все используют один и тот же файл проекта и что файл проекта всегда перемещается вместе с проектом (это проверено в системе контроля версий, что означает, что вы должны проверить это каждый раз, когда вы хотите запустить FxCop).
Если вам не нужны атрибуты SuppressMessage в вашем производственном коде, вам нужно будет определить только символ CODE_ANALYSIS в сборке, с которой вы запускаете FxCop. Это означает, что вы можете определить его в своей конфигурации Debug или добавить дополнительные конфигурации. Атрибуты будут скомпилированы в код только после определения символа.
С точки зрения автоматической / ночной сборки вы можете построить с использованием конфигурации, для которой определен символ, а затем собрать производственную версию без символа или выполнить две сборки - одну с определенным символом, запустить FxCop, чтобы получить ваши нарушения, и затем другая сборка без определенного символа.