We are using the Team Foundation Server and we start using the Code-Analysis in our build process.
Migrate Code-Analysis: this option migrate a predefined Code-Analysis rules, so the team-leader can create a template Code-Analysis rules (from now on will be called: Team Code-Analysis) each programmer should click the Migrate Code-Analysis on his solution, (the result on the local solution will be called: Programmer Code-Analysis).
From MSDN: "The ability to migrate allows you to stay synchronized with the settings on the server.".
My co-workers told me that even when we create an empty Team Code-Analysis they still get annoying warnings for Security Rules, Usage Rules and more rules that I didn't turned on. After playing on and off with our solutions I found out that the migration will save the most strict rules.
for example:
Team Code-Analysis: only Naming Rules
Programmer Code-Analysis: Usage Rules
At the end: the solution will have them both.
This all not so bad, the real problem starts when I changed the Team Code-Analysis templates:
We start the project with full rules, but realize very quickly that we cannot have them all, so we turned off most of them, and today we have only the Naming Rules.
But the solution itself: still holds the strict rules, so it will hold them all.
I am pretty sure that such behavior is by design, but I think that this one is not the best choice. why won't you ask me what I want to do with my migration...
One more tip:
If you have issues like this, it is not a great fun to tell all you programmers\Co-Workers to turn off the unwanted rules (each solution * each project).
The pragmatic approach: Those configuration will be saved locally under your BIN directory inside a file named: AssemblyName.dll.CodeAnalysisLog.xml, so all you should do is to make a sample solution and sent it to everyone, including a simple batch with xcopy to the right folders.
Enjoy.