<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code Analysis Team Blog</title><link>http://blogs.msdn.com/b/codeanalysis/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>What’s New in Code Analysis for Visual Studio 2012</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2012/03/08/what-s-new-in-code-analysis-for-visual-studio-11.aspx</link><pubDate>Fri, 09 Mar 2012 00:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10280115</guid><dc:creator>Vince Smith [MSFT]</dc:creator><slash:comments>15</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=10280115</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2012/03/08/what-s-new-in-code-analysis-for-visual-studio-11.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: x-small;"&gt;Hi Everyone,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;With the launch of the Beta we would like to tell you about some of the great enhancements we have made to code analysis based on your feedback.&amp;nbsp; Back when we started planning for Visual Studio&amp;nbsp;2012 we spent a good deal of time talking with people who use code analysis, and understanding the common pain points.&amp;nbsp; What we learned was there are three key areas you would like to see us improve:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Help better manage large numbers of warnings&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Make the output from the analyzer more understandable&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Improve the accuracy of the analyzer and the types of coding errors it finds&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;In this post let&amp;rsquo;s go over some of the highlights for code analysis in Visual Studio 2012:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Code Analysis is available in all editions of Visual Studio and supports 64bit C++ projects&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Custom rule sets for C++ projects and quick keyword filtering for managing results&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Ability to step through each line on the warning path to improve understanding of the issue&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;"&gt;More accurate, relevant warnings to find important bugs early in development&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4&gt;Code Analysis Available in All Editions of Visual Studio&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;First, we are really excited to announce that we are including code analysis in all editions of Visual Studio 2012, including a subset of the most critical warnings in the Express edition for free (this applies to C++, C#, and VB code analysis) and all rules in the Professional, Premium, and Ultimate editions.&amp;nbsp; We see code analysis as an important tool for writing high quality software, and we want you to have access to the same tools that we run internally at Microsoft.&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;Filtering and C++ Rule Sets&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;Historically, one of the difficult things about using code analysis has been managing the sometimes large sets of results.&amp;nbsp; When we would run analysis on a moderate or large codebase for the first time the sheer number of warnings returned was overwhelming.&amp;nbsp; Finding ways to carve off small bits was difficult.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;To help with this we have created a new window for managing Code Analysis results.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/0624.image_5F00_6B54C0F8.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/6545.image_5F00_thumb_5F00_6786F65B.png" alt="image" width="812" height="610" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;This window contains a keyword filter text box where you can filter code analysis results on warning number, text in the title or message of the warning, as well as filename or function name.&amp;nbsp; We have found this is really useful for quickly getting to the code analysis warnings that are most relevant.&amp;nbsp; For example, say you are adding a new function to an existing project that has previous code analysis warnings in it, and you just want to see any new warnings you may have added. Using keyword filtering you can filter on your new function name and investigate those first.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;In addition, if you are using Visual Studio&amp;nbsp;2012 Professional, Premium, or Ultimate editions you can now create custom rule sets for C++ projects.&amp;nbsp; The rule set configuration file determines which warnings Code Analysis checks for. We have included a default rule set that we think is a great place to start, but we encourage you to customize the rule set to make Code Analysis more relevant to you. For instance, if your organization cares about globalization defects because you ship your software in multiple languages you can enable these rules, or vice versa.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/0652.image_5F00_5DDE8825.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/2474.image_5F00_thumb_5F00_0725AA57.png" alt="image" width="812" height="610" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Detailed Explanation of Code Path to Warning&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;Another part of the C++ code analysis experience we set out to improve is around understanding how the analyzer found the problem.&amp;nbsp; Previously when investigating a code analysis warning we would often scratch our heads and say to ourselves &amp;ldquo;ok, it&amp;rsquo;s telling me there is a bug on this line of source code, but how did it get there in the first place?&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;So in Visual Studio&amp;nbsp;2012 we have introduced the concept of &amp;ldquo;key events.&amp;rdquo; A Key event is a relevant decision or assumption the analyzer made in the process of finding a defect. In the example below there are three key events (on the left). The key event on line 7 explains what the analyzer assumed in order to reach the bug; that the Boolean parameter &amp;lsquo;guard&amp;rsquo; is false.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/5428.clip_5F00_image004_5F00_438DF934.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image004" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/5504.clip_5F00_image004_5F00_thumb_5F00_27110754.jpg" alt="clip_image004" width="623" height="177" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;In the Code Analysis window you can click on a warning and step through these key events similar to a traditional debugger.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/3326.image_5F00_6D8DF75C.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-30-49-metablogapi/7367.image_5F00_thumb_5F00_41AD7DA0.png" alt="image" width="820" height="613" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;We have added key events to a handful of the most relevant and common C++ warnings, and as we hear feedback from you we will continue to update and improve the output of the warning messages.&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;Many Other Improvements&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;Lastly I would like to mention that there are many other improvements we have made to the accuracy of the C++ analyzer, the source code annotation language used by the analyzer (as well as documentation for it), and the kinds of defects the analyzer finds.&amp;nbsp; Just to point out one improvement; in this release we have added checks for concurrency defects like threading deadlocks and race conditions in C++ code.&amp;nbsp; However, these are topics unto themselves, so we can save them for another day.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;In closing this first post for code analysis in Visual Studio 2012, we are excited to use this blog as a way to teach, learn, and interact together.&amp;nbsp; We encourage you to try Visual Studio 2012 an&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;d check out code analysis, and we appreciate and look forward to your feedback.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;-Code Analysis Team&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;To discover more about code analysis in Visual Studio&amp;nbsp;2012 go here:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh441471(v=VS.85).aspx"&gt;&lt;span style="font-size: x-small;"&gt;http://msdn.microsoft.com/en-us/library/windows/apps/hh441471(v=VS.85).aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10280115" width="1" height="1"&gt;</description></item><item><title>Preventing check-ins to TFS that contain code analysis warnings</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2011/04/06/preventing-check-ins-to-tfs-that-contain-code-analysis-warnings.aspx</link><pubDate>Wed, 06 Apr 2011 17:52:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10150571</guid><dc:creator>Andrew B Hall - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=10150571</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2011/04/06/preventing-check-ins-to-tfs-that-contain-code-analysis-warnings.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Recently we have received several questions regarding Visual Studio Code Analysis integration with Team Foundation Server’s check-in policy and build server, so I thought it would be helpful to clarify the behavior and expose some relatively hidden functionality.&lt;/p&gt;  &lt;h2&gt;Source Control Check-in Policy&lt;/h2&gt;  &lt;p&gt;The first point of confusion that often arises is about the source control check-in policy.&amp;#160; A common question is “I have a check-in policy, so why does it let me check-in code that contains code analysis warnings?”, “I want a code analysis check-in policy, but I want to hold different projects (e.g. test and product code) to different standards, can I configure different check-in policies for different projects?”, or “How can I treat warnings as errors so I break the build on code analysis warnings?”&lt;/p&gt;  &lt;p&gt;The important thing to note about the code analysis check-in policy is the rule set selected for the check-in policy sets the baseline for the minimum set of rules that must be run on the project before the code can be checked in.&amp;#160; All this does is enforce that the rules were run on the project before a check-in, it does not in fact enforce that the code checked-in be code analysis clean for the rule set that is specified in the check-in policy, nor does it actually require that exact rule set be run, as a superset of those rules can be run as long as each rule in the check-in policy rule set was run, the check-in will not be rejected.&lt;/p&gt;  &lt;p&gt;The way to prevent checking in code with code analysis warnings is to modify the action for the rules from the default of “Warning” to “Error” for the rule set on the TFS server, setting the build definition trigger to be a “Gated Check-in”, and enabling Code Analysis as part of the build.&amp;#160; &lt;em&gt;NOTE&lt;/em&gt;: taking this approach will also result in your builds breaking on code analysis warnings since you are treating them as errors.&lt;/p&gt;  &lt;h2&gt;Rule Sets&lt;/h2&gt;  &lt;p&gt;The first thing to do is pick the rule set(s) you want run for each project.&amp;#160; You can either use the built in rule sets, or create your own custom.&amp;#160;&amp;#160; You will need to create at least one custom rule set if you want to use the same set of rules, but block check-ins for some projects, and with the same set of rules not block check-ins for other projects.&amp;#160; The easiest way to create a custom rule set is to start from an existing rule set:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open any project’s properties page&lt;/li&gt;    &lt;li&gt;Select the Code Analysis tab&lt;/li&gt;    &lt;li&gt;Choose the rule set you would like to make a copy of from the rule set drop down&lt;/li&gt;    &lt;li&gt;Click “Open”.&amp;#160; &lt;br /&gt; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/4643.image_5F00_09D5F9C9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/0456.image_5F00_thumb_5F00_3BED2446.png" width="513" height="371" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;You will now be presented with the rule set editor, from the rule set editor change the action from “Warning” to “Error”      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/0246.image_5F00_4DC9B813.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/1325.image_5F00_thumb_5F00_46AA7B9B.png" width="592" height="259" /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;When you save the modified rule set you will be presented with the “Save As…” dialogue since the built in rule sets are by default read only &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You will now need to either place your new custom rule set on a share and set the project to use that rule set by selecting “&amp;lt;Browse…&amp;gt;” from the rule set dropdown, or you can drop the new custom rule set into the rule set directory (“%VS_INSTALL_DIRECTORY%\Team Tools\Static Analysis Tools\Rule Sets”) on each developer’s machine and the build server machine, and it will automatically appear as an option in the rule set dropdown.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/5611.image_5F00_6D7891DB.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/8357.image_5F00_thumb_5F00_66595563.png" width="508" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Configuring the Build Definition&lt;/h2&gt;    &lt;p&gt;Next we need to configure the build definition:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Set the “Trigger” to “Gated Check-in”      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/0336.image_5F00_3B14BE5C.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/5621.image_5F00_thumb_5F00_61E2D49C.png" width="595" height="265" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Under “Process”, expand “Basic” and set “Perform Code Analysis” to “Always”      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/4643.image_5F00_45D215B1.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-30-49-metablogapi/1004.image_5F00_thumb_5F00_0191AE65.png" width="623" height="280" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;p&gt;That’s it, now check-ins with code analysis warnings will be blocked for projects using the new custom rule set(s).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10150571" width="1" height="1"&gt;</description></item><item><title>FxCop 10.0 is available</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2010/07/26/fxcop-10-0-is-available.aspx</link><pubDate>Mon, 26 Jul 2010 16:39:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10042627</guid><dc:creator>Duke Kamstra</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=10042627</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2010/07/26/fxcop-10-0-is-available.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2"&gt;Version 10.0 of FxCop is the version that ships with Visual Studio 2010 Premium. FxCop 10.0 is part of Version 7.1 of the Microsoft Windows SDK for Windows 7 and .NET Framework 4.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Instructions&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;Download the &lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b"&gt;&lt;font size="2"&gt;Microsoft Windows SDK for Windows 7 and .NET Framework 4 Version 7.1&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Using elevated privileges execute FxCopSetup.exe from the %ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin\FXCop folder. &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt; &lt;font size="2"&gt;If you require FxCop 1.36 please download and install the Windows SDK version 7.0.&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10042627" width="1" height="1"&gt;</description></item><item><title>Data Flow Analysis Rules in Visual Studio 2010</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2010/04/14/data-flow-analysis-rules-in-visual-studio-2010.aspx</link><pubDate>Wed, 14 Apr 2010 17:06:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9995989</guid><dc:creator>Duke Kamstra</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=9995989</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2010/04/14/data-flow-analysis-rules-in-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;This blog post applies to Visual Studio 2010 Premium and Ultimate editions. The content was written by Kevin Blasko one of the developers on the Visual Studio Code Analysis team.&lt;/p&gt;  &lt;p&gt;The purpose of this blog post is to give you some background on the implementation of the Dataflow Analysis (DFA) rules in Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;New Engine, New Rules for Visual Studio 2010&lt;/h1&gt;  &lt;p&gt;If you looked at the &lt;a href="http://blogs.msdn.com/codeanalysis/archive/2010/03/22/what-s-new-in-code-analysis-for-visual-studio-2010.aspx"&gt;What’s New in Visual Studio 2010&lt;/a&gt; Blog Post you will have noticed that there are several new Code Analysis rules for Managed Code. Several of these new rules are what we describe as DFA rules. These rules are implemented using the Phoenix Code Analysis engine. The rules are:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182182(VS.100).aspx"&gt;CA1062 Validate Arguments of Public Methods&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182187(VS.100).aspx"&gt;CA1303 Do Not Pass Literals as Localized Parameters&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182289(VS.100).aspx"&gt;CA2000 Dispose Objects Before Losing Scope&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182310(VS.100).aspx"&gt;CA2100 Review SQL Queries For Security Vulnerabilities&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182334(VS.100).aspx"&gt;CA2202 Do Not Dispose Objects Multiple Times&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264488(VS.100).aspx"&gt;CA2204 Literals Should Be Spelled Correctly&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182330(VS.100).aspx"&gt;CA2215 Dispose Methods Should Call Base Class Dispose&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182361(VS.100).aspx"&gt;CA2241 Provide Correct Arguments to Formatting Methods&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This list of rules should give you an idea of what a DFA engine is capable of.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Why Implement A New Code Analysis Engine?&lt;/h1&gt;  &lt;p&gt;We needed to implement a new analysis engine to improve the quality and performance of DFA rules. We chose to do this using a technology developed by Microsoft Research called &lt;a href="http://research.microsoft.com/en-us/collaboration/focus/cs/phoenix.aspx"&gt;Phoenix&lt;/a&gt;. Phoenix is an extensible compiler framework with advanced analysis capabilities. Static analysis turns out to be very important to compilers since the more information you have about the state of the program, the better optimizations you can make when compiling the program. We took advantage of the existing analysis infrastructure as a starting point and built our new engine on top of it. The engine is capable of producing better quality analysis with less noise, less missed analysis, and better performance than our previous DFA engine.&lt;/p&gt;  &lt;p&gt;The Phoenix engine excels at analyzing function bodies. Whereas the engine used for the rest of the managed code rules is good at symbolic analysis of class and function definitions (which the Phoenix engine can do as well). For example, consider the following simple example that is actually difficult to analyze without an engine with Phoenix’s capabilities. For the sample, assume that we’re trying to detect violations of CA1062 Validate Arguments of Public Methods.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:91ebc885-7142-4c88-a969-dcdc043d50d1" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Function(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; argument)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; localVariable = argument;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (localVariable != &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Console&lt;/span&gt;.WriteLine(argument.Length);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;else&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Console&lt;/span&gt;.WriteLine(localVariable.Length);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/p&gt;  &lt;p&gt;Looking at “Function”, you can see that line 11 contains a CA1062 violation while line 7 does not, but how can you determine this programmatically? The code will first need to determine which object dereferences could &lt;i&gt;potentially&lt;/i&gt; result in a violation. As the assignment on line 3 shows, this isn’t as straight forward as it first appears. In addition to looking for “argument” dereferences, you now need to look for dereferences of “localVariable”.&lt;/p&gt;  &lt;p&gt;Now that you’ve found all of the potential dereferences, you need to determine whether or not it’s possible for “argument’s” value to be null for that particular dereference. If you’ve written code that is able to detect that “localVariable” dereferences need to be checked, it probably isn’t that hard to look for null checks against both “argument” and “localVariable”, so the next problem is finding the correct “if” statement that determines whether the dereference is executed. Like before, this is harder than it looks. It’s easy to tell that the dereferences occur within the scope of the “if-else” statement on line 5 and 9 by looking at the code. However, if you’re using an analysis engine whose object model is little more than a wrapper over the raw MSIL, the instructions that you’re analyzing have no concept of scope. The easiest thing that you can do is walk the instructions backwards looking for a branch instruction. But what happens if there’s a branch from further down in the program to line 7 or 11? That branch that you found could turn out to actually be a loop! Or even worse, the author could have inserted a goto that jumps directly to line 7!&lt;/p&gt;  &lt;p&gt;Assuming that you get all of the control flow problems sorted out and are able to match the dereference to the branch instruction (maybe you build your own control flow graph or decide that walking the instructions back to the first branch is good enough), you now need to determine if the branch is conditional, and if so, if the condition is a null check. In cases like the one in the example, this will be easy enough, but in many cases, the condition will be the result of a more complex comparison or maybe not even a direct comparison at all. Depending on what you’re willing to accept here, things can get real complicated very fast.&lt;/p&gt;  &lt;p&gt;So how does a DFA engine make this easier? The key benefit of a DFA engine is its ability to propagate known information about program state through a method using a control flow graph. New information about the state of the program is then discovered using the information that is known initially. The new information is then fed back into the system and used to further understand the state of the program. The information is propagated by applying a set of rules to the input data depending on the type of MSIL instruction that is being analyzed. This allows you to think about each propagation rule in isolation and only have to worry about what the output is for a narrow and more specific set of inputs.&lt;/p&gt;  &lt;p&gt;In the example above, you would have a propagation rule for a compare instruction that takes “localVariable” and “null” as its inputs. Since we know that the literal value for “null” is null, we are able to infer new information about the null-ness of “localVariable” depending on which branch of the “if” statement is taken. As the output of this propagation rule, we would annotate each branch in the control flow graph with the null-ness information that we just inferred. This makes writing the Code Analysis rule simple. All we do is run the null-ness dataflow analysis, look for the dereferences of “argument” (which itself can be done as another dataflow analysis) and then extract the null-ness information for the object being dereferenced.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;What Does This Cost Me?&lt;/h1&gt;  &lt;p&gt;This improved analysis does come at a cost to the Code Analysis user. It turns out that enabling even just one of the DFA rules will approximately double the time it takes to run code analysis. The reason for this is that both the Phoenix engine and the existing (Introspection aka CCI) engine need to load the target assembly and all the references into their own internal representations and then prepare those representations for rule consumption. The good news is that the amount of time it takes to execute all of the DFA rules isn’t that much different than executing one rule. To offset the performance hit, we’ve improved the performance of the Introspection engine so that it runs about 25% faster than the Visual Studio 2008 version.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; The Phoenix Code Analysis engine and associated DFA rules do not ship in the standalone FxCop release.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9995989" width="1" height="1"&gt;</description></item><item><title>How to write custom static code analysis rules and integrate them into Visual Studio 2010</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into-visual-studio-2010.aspx</link><pubDate>Fri, 26 Mar 2010 23:58:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9986012</guid><dc:creator>Duke Kamstra</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=9986012</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;This blog explains how to implement your own static code analysis rules for analyzing your .NET (C#, VB.NET, etc) code. The material was written by Todd King, one of the developers on the Visual Studio Code Analysis team.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE: Writing custom FxCop rules, the associated APIs and the process for installing them is not a supported feature of the product. We are providing this information because we get so many questions about how to do it.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Prerequisites&lt;/h1&gt;  &lt;p&gt;You must be using Visual Studio 2010 Premium or Visual Studio 2010 Ultimate to implement custom code analysis rules.&lt;/p&gt;  &lt;h1&gt;Creating the MyCustomRules project&lt;/h1&gt;  &lt;p&gt;NOTE: If you already have an existing custom rules project you can skip this step.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;Create a new class library project and name it whatever you want your rules assembly to be named. For the purposes of this blog I’ve named it MyCustomRules.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Next add a reference to the FxCop assemblies. Your custom rules project will need to reference FxCopSdk.dll and Microsoft.Cci.dll. Visual Studio 2010 installs the assemblies in “C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop” on a 32-bit OS and “C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop” on a 64-bit OS. In order to avoid path resolution issues when the project is built on different computers you can use the $(CodeAnalysisPath) MSBuild property. The property will resolve to the location where the FxCop assemblies have been installed. Use the following procedure to define the references to the two assemblies &lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;Open up your project in Visual Studio 2010.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;In Solution Explorer right click on the project and select &lt;b&gt;Unload Project&lt;/b&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Now right click on the project and select edit MyCustomRules.csproj&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Find the ItemGroup xml element where your project’s references are and add the first two &amp;lt;Reference&amp;gt; elements described in the following code snippet&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:997e1eea-21eb-497e-b35f-82a655f78f45" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px; white-space: nowrap"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;ItemGroup&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;FxCopSdk&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;HintPath&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;$(CodeAnalysisPath)&amp;#92;FxCopSdk.dll&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;HintPath&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Private&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;False&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Private&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;Microsoft.Cci&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;HintPath&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;$(CodeAnalysisPath)&amp;#92;Microsoft.Cci.dll&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;HintPath&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Private&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;False&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Private&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;System&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;System.Core&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;System.Xml.Linq&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;System.Data.DataSetExtensions&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;Microsoft.CSharp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;System.Data&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Reference&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Include&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;System.Xml&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;ItemGroup&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Close the editor, right click on the project and select &lt;b&gt;Reload Project&lt;/b&gt;.&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Now we need to setup the RuleMetadata.xml file for this project. The RuleMetadata.xml file is where various properties of the rules for this project will be stored. For example this is where the rule description, resolutions, message level, owner contact info, etc is stored.&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;To Add a RuleMetadata.xml file right click on your project and select add new item. &lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;             &lt;p&gt;Type &lt;b&gt;XML File&lt;/b&gt; in the Search Installed Templates control.&lt;/p&gt;           &lt;/li&gt;            &lt;li&gt;             &lt;p&gt;Select the &lt;b&gt;XML File&lt;/b&gt; template and name it RuleMetadata.xml (it can be named whatever you want, for the purposes of this blog I’ve named it RuleMetadata.xml).&lt;/p&gt;           &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;At this point you don’t have any rules so all you need to do is add a root Rules element as follows. Where the FriendlyName value is some user readable string that will be displayed to the user as the name of your rules assembly.&lt;/p&gt;          &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b319220a-3ac5-443d-9445-de6ce443cf85" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px; white-space: nowrap"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515"&gt;xml&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; ?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Rules&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;FriendlyName&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;My Custom FxCop Rules&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;      &lt;ol&gt;&lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Next set the RuleMetadata.xml file as an EmbeddedResource for our rules assembly&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;In Solution Explorer right click on the file RuleMetadata.xml and select &lt;b&gt;Properties&lt;/b&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;In the Property Tool window change the &lt;b&gt;Build Action&lt;/b&gt; property to &lt;b&gt;Embedded Resource&lt;/b&gt;.&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h1 dir="ltr"&gt;Implementing a custom rule&lt;/h1&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;Note that we have not released an SDK for implementing custom rules, so the API is undocumented and will almost certainly change in the future. With those caveats in mind, the following example describes how to implement a simple rule. The rule we will implement checks whether or not the identifiers for private and internal fields use Hungarian notation.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;1. Define an abstract class that inherits from the FxCop API and initializes the resources defined in the XML file.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p style="margin-right: 0px" dir="ltr"&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fa09b286-b8a6-4dd4-99a5-99e3b1caea81" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; Microsoft.FxCop.Sdk;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; MyCustomFxCopRules&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff"&gt;abstract&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;BaseFxCopRule&lt;/span&gt; : &lt;span style="color:#2b91af"&gt;BaseIntrospectionRule&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;protected&lt;/span&gt; BaseFxCopRule(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; ruleName)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;: &lt;span style="color:#0000ff"&gt;base&lt;/span&gt;(ruleName, &lt;span style="color:#a31515"&gt;&amp;quot;DukesFirstFxCopRule.DukesFirstFxCopRule&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;BaseFxCopRule&lt;/span&gt;).Assembly)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{ }&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;Where the resource name is the default namespace of your project + whatever you named the RuleMetadata.xml file. &amp;quot;MyCustomFxCopRules.RuleMetadata&amp;quot; in the example above.    &lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;&lt;strong&gt;NOTE: Make sure you use the &lt;u&gt;default namespace&lt;/u&gt; for your project in the resource name. If you do not FxCopCmd.exe will return error CA0054 because it is unable to load your rule.&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;2. Define a class to implement the rule and derive from our previously defined class.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:702fc99d-abdf-41c2-8b2d-47fc089d4131" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff"&gt;sealed&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;EnforceHungarianNotation&lt;/span&gt; : &lt;span style="color:#2b91af"&gt;BaseFxCopRule&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; EnforceHungarianNotation()&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;: &lt;span style="color:#0000ff"&gt;base&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;EnforceHungarianNotation&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{ }&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;3. Define the visibility of the code elements we want to analyze by overriding the TargetVisibility property. Normally it is fine to leave this at the default implementation of &lt;i&gt;TargetVisibilities.All&lt;/i&gt; however in this case we only want to analyze fields that are not externally visible so we want to return a value of &lt;i&gt;TargetVisibilities.NotExternallyVisible&lt;/i&gt;. Add the following code to the EnforceHungarianNotation class definition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e074751b-d52a-4deb-b49b-054625d3cd4c" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#008000"&gt;// Only fire on non-externally visible code elements.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;override&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TargetVisibilities&lt;/span&gt; TargetVisibility&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af"&gt;TargetVisibilities&lt;/span&gt;.NotExternallyVisible;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;4. Since this rule is supposed to fire on fields, which are members of types, we override the Check(Member) method. We need to verify that the member being examined by the check method is actually a field. This could be done either by trying to cast it to a Microsoft.FxCop.Sdk.Field type or checking if the member’s NodeType is NodeType.Field. Once we know we are looking at a field we need to determine if it is a static field or not so we know which kind of Hungarian prefix should be expected. To do this we can check the IsStatic property on the field. Now we just need to determine if the field’s name starts with the expected Hungarian notation prefix and if not report a rule violation. To do this we get the field’s name using the Name property (actually need to call Name.Name to get the string form of the name, just one of the quirks of the current API) and check if it starts with the expected prefix. If not then we need to construct a Problem object and add it to the rule’s ProblemCollection accessed through the inherited Problems property. Add the following code to the EnforceHungarianNotation class definition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:58d1c5d9-b24c-4451-a7db-f922151f459c" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;override&lt;/span&gt; &lt;span style="color:#2b91af"&gt;ProblemCollection&lt;/span&gt; Check(&lt;span style="color:#2b91af"&gt;Member&lt;/span&gt; member)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Field&lt;/span&gt; field = member &lt;span style="color:#0000ff"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Field&lt;/span&gt;;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (field == &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// This rule only applies to fields. &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Return a null ProblemCollection so no violations are reported for this member.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (field.IsStatic)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;CheckFieldName(field, s_staticFieldPrefix);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;else&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;CheckFieldName(field, s_nonStaticFieldPrefix);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// By default the Problems collection is empty so no violations will be reported &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// unless CheckFieldName found and added a problem.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt; Problems;&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;const&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; s_staticFieldPrefix = &lt;span style="color:#a31515"&gt;&amp;quot;s_&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;const&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; s_nonStaticFieldPrefix = &lt;span style="color:#a31515"&gt;&amp;quot;m_&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;5. Rule resolutions are stored in the RuleMetadata.xml file. Calling GetResolution will retrieve that resolution string and also fill in any string arguments passed in. Finally we need to create a Problem object from the Resolution object we just created and add that Problem to the Problems collection for this rule. Add the following code to the EnforceHungarianNotation class definition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d9140b24-7413-4de2-b183-c4f672996bef" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; CheckFieldName(&lt;span style="color:#2b91af"&gt;Field&lt;/span&gt; field, &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; expectedPrefix)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (!field.Name.Name.StartsWith(expectedPrefix, &lt;span style="color:#2b91af"&gt;StringComparison&lt;/span&gt;.Ordinal))&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Resolution&lt;/span&gt; resolution = GetResolution(&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;field,&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Field {0} is not in Hungarian notation.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;expectedPrefix&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Field name should be prefixed with {1}.&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Problem&lt;/span&gt; problem = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Problem&lt;/span&gt;(resolution);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Problems.Add(problem);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;6. The final step is adding the appropriate rule metadata for this new rule to the RuleMetadata.xml file in our project. The following rule metadata can be defined in the RuleMetadata file.&lt;/p&gt;  &lt;ul dir="ltr"&gt;   &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;Display name of the rule.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;Rule description.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;One or more rule resolutions.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;The MessageLevel (severity) of the rule. This can be set to one of the following:&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div style="margin-right: 0px"&gt;CriticalError&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style="margin-right: 0px"&gt;Error&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style="margin-right: 0px"&gt;CriticalWarning&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style="margin-right: 0px"&gt;Warning&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div style="margin-right: 0px"&gt;Information&lt;/div&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;The certainty of the violation. This field represents the accuracy percentage of the rule. In other words this field describes the rule author’s confidence in how accurate this rule is.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;The FixCategory of this rule. This field describes if fixing this rule would require a breaking change, ie a change that could break other assemblies referencing the one being analyzed.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;The help url for this rule. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;The name of the owner of this rule.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div style="margin-right: 0px"&gt;The support email to contact about this rule.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;For the example EnforceHungarianNotation rule described in this sample the RuleMetadata.xml file should look something like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c7f5a0ef-4a98-450a-b2c5-78355ff49f8c" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515"&gt;xml&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; ?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Rules&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;FriendlyName&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;My Custom FxCop Rules&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Rule&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;TypeName&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;EnforceHungarianNotation&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Category&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;MyRules&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;CheckId&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;CR1000&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;Enforce Hungarian Notation&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;Checks fields for compliance with Hungarian notation.&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Resolution&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;Field {0} is not in Hungarian notation. Field name should be prefixed with &amp;#39;{1}&amp;#39;.&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Resolution&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;MessageLevel&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Certainty&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;100&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;Warning&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;MessageLevel&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;FixCategories&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;NonBreaking&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;FixCategories&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Url&lt;/span&gt;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Owner&lt;/span&gt;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Email&lt;/span&gt;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Rule&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Rules&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;&lt;strong&gt;NOTE: The TypeName attribute of the Rule element must match exactly with the name string passed in to the base constructor of the rule implementation. If they do not match FxCopCmd.exe will return error CA0054 because it is unable to load your rule.&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Debugging custom rules&lt;/h1&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;You can debug custom rules through FxCopCmd.exe. Normally you would run your rule against another project. To simplify the instructions in this blog we’re going to run our new rule against the implementation of the rule itself. In the project properties for your custom rules project on the Debug tab do the following&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;1. Configure the project to launch an external program and enter in the path to FxCopCmd.exe. For example    &lt;br /&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;2. For command line arguments specify    &lt;br /&gt;/out:&amp;quot;results.xml&amp;quot; /file:&amp;quot;MyCustomRules.dll&amp;quot; /rule:&amp;quot;MyCustomRules.dll&amp;quot; /D:&amp;quot;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop&amp;quot;&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;3. Set the working directory to the build output folder. For example    &lt;br /&gt;C:\Projects\MyCustomRules\MyCustomRules\bin\Debug\&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;Now you can to debug your custom rules by simply hitting F5 from your custom rules project. Try it&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;1. Set a breakpoint on the statement&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b34fa476-6957-454b-8b8d-5fc33da2b5dc" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (!field.Name.Name.StartsWith(expectedPrefix, &lt;span style="color:#2b91af"&gt;StringComparison&lt;/span&gt;.Ordinal))&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;2. Press F5 and execution should stop at the breakpoint.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;3. Press F5 again and execution should complete successfully.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;4. Note that there is not a results.xml file in the …\Debug folder because there are no rule violations in the code we are running the rule against.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;Let’s create a rule violation so we can verify that our rule is behaving as it should.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;1. Add the following code to the EnforceHungarianNotation class definition&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ad802c51-1069-40db-b798-bdf751347ae4" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff"&gt;int&lt;/span&gt; m_Foo;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;2. Press F5&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;3. Disable the breakpoint and Press F5 again&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;4. Examine the results.xml file in the …\Debug folder. Note the description of the rule violation. It works!&lt;/p&gt;  &lt;h1&gt;Running custom rules&lt;/h1&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;At this point we have verified that our rule functions as expected. To run our custom rule using the command line utility FxCopCmd simply use the command line options we defined in the Debug options. Run FxCopCmd.exe /? For a list of all the command line utility’s options.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;A new feature in Visual Studio 2010 is called rule sets. Rule sets are a new way of configuring which rules should be run during analysis. The easiest way to integrate your rules into Visual Studio 2010 is to copy them to the %Program Files%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules directory. If you are replacing an existing assembly you will need to restart Visual Studio after copying the file. Once the file is copied to the Rules directory the next time you launch the rule set editor you should see your custom rules. Try the following procedure&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;1. From your project’s property settings select the Code Analysis tab&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;2. Click on the Open button to open the Rule Set editor&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;3. Create a custom rule set by doing a File à Save As and saving the rule set to MyCustomRuleSet.ruleset&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;4. Click on the button &lt;b&gt;Show rules that are not enabled&lt;/b&gt; in the rule set editor’s button bar. Your custom rule(s) should appear in the list.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_thumb_1.png" width="450" height="326" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;If you don’t want to mess with your Visual Studio installation by adding your own custom rules to the built in Rules directory that Visual Studio uses, you can manually edit a custom rule set instead.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;1. Create a new rule set and save it.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;2. Open that new rule set file in a text or xml editor and add a RuleHintPaths section with a Path element with the location of your custom rules. The path to your custom rules can include absolute file paths, relative paths, and use environment variables. For example your rule set file might look like the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6b3bbf1e-ab8d-4b83-affc-37efd76da902" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515"&gt;xml&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;RuleSet&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;My Custom Rule Set&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;Description&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;10.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;RuleHintPaths&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Path&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;%CustomRulesPath%&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Path&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Path&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;..&amp;#92;..&amp;#92;CustomRules&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Path&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Path&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;C:&amp;#92;CustomRules&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Path&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;RuleHintPaths&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;RuleSet&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;3. Now open that rule set file with the visual studio Code Analysis Rule Set Editor (the default editor for *.ruleset files). Your custom rules should appear in the editor as seen above.&lt;/p&gt;  &lt;h1&gt;Troubleshooting Visual Studio integration&lt;/h1&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;If code analysis is reporting errors performing analysis due to exceptions, more details on those exceptions can be found in the *.CodeAnalysisLog.xml file in the bin directory of the assembly being analyzed (see the Exceptions section of the report file towards the bottom).&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;When you run code analysis from Visual Studio the FxCopCmd command line utility is invoked to perform the analysis. To discover exactly what command line options are being passed to FxCopCmd by Visual Studio so you can reproduce and debug the error outside of Visual Studio, first set the build output verbosity to Normal or higher. This can be done by going to Tools - &amp;gt;Options -&amp;gt; Projects and Solutions -&amp;gt; Build and Run.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/codeanalysis/WindowsLiveWriter/Howtowritecustomstaticcodeanalysisrulesa_EE9E/image_thumb.png" width="630" height="368" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;Run code analysis and view the output window. You should see the exact command line arguments passed into FxCopCmd right after the “Running Code Analysis…” message.&lt;/p&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;For more information on where FxCopCmd is looking for assemblies you may increase the trace level of FxCopCmd to 3. This can be done by modifying the FxCopCmd.exe.config file in the same directory as FxCopCmd.exe as follows&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:117905a4-c939-4ca2-8a92-a56f0fdab39a" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;switches&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;TraceSwitch has the following values&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;Off = 0, Error = 1, Warning = 2, Info = 3, Verbose = 4&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;BooleanSwitch has the following values&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;Off = 0, On = 1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt; TraceSwitch&amp;#39;es &lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;add&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;Trace&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;3&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt; BooleanSwitch&amp;#39;es &lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;add&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;TraceExceptions&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;switches&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p style="margin-right: 0px" dir="ltr"&gt;Once this is done the xml reports (like the *.CodeAnalysisLog.xml file mentioned earlier) produced by FxCopCmd will contain a DebugInfo section that details what search paths FxCopCmd used and exactly where it resolved each assembly reference to. This information can also be determined by examining the trace messages emitted by FxCopCmd to the console.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9986012" width="1" height="1"&gt;</description></item><item><title>Comparison of Code Analysis Warnings and Errors - Visual Studio 2008 versus Visual Studio 2010</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/23/comparison-of-code-analysis-warnings-and-errors-visual-studio-2008-versus-visual-studio-2010.aspx</link><pubDate>Tue, 23 Mar 2010 19:01:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9983825</guid><dc:creator>Duke Kamstra</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=9983825</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/23/comparison-of-code-analysis-warnings-and-errors-visual-studio-2008-versus-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;This blog compares the Code Analysis warnings and errors generated by Visual Studio 2008 and Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Managed Code Analysis&lt;/h1&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;Warning / Error&lt;/p&gt;          &lt;p&gt;Number&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Description&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Visual Studio 2008 Team System&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Visual Studio 2010 Premium&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245246(VS.100).aspx"&gt;CA0001&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;An exception was raised within managed code analysis tool that does not indicate an expected error condition.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245044(VS.100).aspx"&gt;CA0051&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;No rules were selected.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245351.aspx"&gt;CA0052&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;No targets were selected to analyze.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245045.aspx"&gt;CA0053&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Rule assembly could not be loaded.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245350.aspx"&gt;CA0054&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;A custom rule assembly has invalid XML resources.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms244741.aspx"&gt;CA0055&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Could not load file:&amp;lt;path&amp;gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms244742.aspx"&gt;CA0056&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;A project file has an incorrect version of the analysis tool.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms244740.aspx"&gt;CA0057&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Violations cannot be mapped to the current set of targets and rules.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms244739.aspx"&gt;CA0058&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Unable to load assemblies referenced.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb763129.aspx"&gt;CA0059&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Command line switch error.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb763128.aspx"&gt;CA0060&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Unable to load assemblies referenced indirectly.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330946(VS.100).aspx"&gt;CA0061&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;The rule 'RuleId' referenced in rule set 'RuleSetName' could not be found.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330941(VS.100).aspx"&gt;CA0062&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;The rule 'RuleId' could not be found.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330931(VS.100).aspx"&gt;CA0063&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Failed to load rule set file or one of its dependent rule set files.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330942(VS.100).aspx"&gt;CA0064&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;No analysis was performed because the specified rule set did not contain any FxCop rules.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff460123(VS.100).aspx"&gt;CA0065&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Unsupported metadata construct: Type '&lt;i&gt;TypeName&lt;/i&gt;' contains both a property and a field with the same name '&lt;i&gt;PropertyFieldName&lt;/i&gt;'&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;CA0066&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330945(VS.100).aspx"&gt;CA0067&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Directory not found.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee340672(VS.100).aspx"&gt;CA0068&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Debug information could not be found for target assembly 'AssemblyName'.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff469833(VS.100).aspx"&gt;CA0069&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;UsingAlternatePlatform. FrameworkVersion1 could not be found. Using FrameworkVersion2 instead. For best analysis results please ensure that the correct .NET Framework is installed.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee524048(VS.100).aspx"&gt;CA0070&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Unable to analyze permission attributes&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245043.aspx"&gt;CA0501&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Unable to read output report.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245041.aspx"&gt;CA0502&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Unsupported language.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245352.aspx"&gt;CA0503&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Additional warnings cannot be displayed.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee461604(VS.100).aspx"&gt;CA0504&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Rule directory was ignored because it does not exist&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee461609(VS.100).aspx"&gt;CA0505&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;The property is deprectated. Use the superceding property&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182139(VS.100).aspx"&gt;CA1000&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not declare static members on generic types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182172(VS.100).aspx"&gt;CA1001&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Types that own disposable fields should be disposable&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182142(VS.100).aspx"&gt;CA1002&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not expose generic lists&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182178(VS.100).aspx"&gt;CA1003&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use generic event handler instances&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182150(VS.100).aspx"&gt;CA1004&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Generic methods should provide type parameter&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182129(VS.100).aspx"&gt;CA1005&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive parameters on generic types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182144(VS.100).aspx"&gt;CA1006&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not nest generic types in member signatures&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182179(VS.100).aspx"&gt;CA1007&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use generics where appropriate&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182149(VS.100).aspx"&gt;CA1008:&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Enums should have zero value&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182133(VS.100).aspx"&gt;CA1009&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Declare event handlers correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182132(VS.100).aspx"&gt;CA1010&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Collections should implement generic interface&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/3hk32yyz(VS.100).aspx"&gt;CA1011&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Consider passing base types as parameters&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182126(VS.100).aspx"&gt;CA1012&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Abstract types should not have constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182164(VS.100).aspx"&gt;CA1013&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Overload operator equals on overloading add and subtract&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182156(VS.100).aspx"&gt;CA1014&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark assemblies with CLSCompliantAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182155(VS.100).aspx"&gt;CA1016&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark assemblies with AssemblyVersionAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182157(VS.100).aspx"&gt;CA1017&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark assemblies with ComVisibleAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182158(VS.100).aspx"&gt;CA1018&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark attributes with AttributeUsageAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182136(VS.100).aspx"&gt;CA1019&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Define accessors for attribute arguments&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182130(VS.100).aspx"&gt;CA1020&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid namespaces with few types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182131(VS.100).aspx"&gt;CA1021&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid out parameters&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182152(VS.100).aspx"&gt;CA1023&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Indexers should not be multidimensional&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182181(VS.100).aspx"&gt;CA1024&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use properties where appropriate&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182167(VS.100).aspx"&gt;CA1025&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Replace repetitive arguments with params array&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182135(VS.100).aspx"&gt;CA1026&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Default parameters should not be used&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182159(VS.100).aspx"&gt;CA1027&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark enums with FlagsAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182147(VS.100).aspx"&gt;CA1028&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Enum storage should be Int32&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182177(VS.100).aspx"&gt;CA1030&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use events where appropriate&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182137(VS.100).aspx"&gt;CA1031&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not catch general exception types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182151(VS.100).aspx"&gt;CA1032&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Implement standard exception constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182153(VS.100).aspx"&gt;CA1033&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Interface methods should be callable by child types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182162(VS.100).aspx"&gt;CA1034&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Nested types should not be visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/49stb304(VS.100).aspx"&gt;CA1035&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;ICollection implementations have strongly typed members&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182163(VS.100).aspx"&gt;CA1036&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Override methods on comparable types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182148(VS.100).aspx"&gt;CA1038&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Enumerators should be strongly typed&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182154(VS.100).aspx"&gt;CA1039&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Lists are strongly typed&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182128(VS.100).aspx"&gt;CA1040&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid empty interfaces&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182166(VS.100).aspx"&gt;CA1041&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Provide ObsoleteAttribute message&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182180(VS.100).aspx"&gt;CA1043&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use integral or string argument for indexers&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182165(VS.100).aspx"&gt;CA1044&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Properties should not be write only&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182146(VS.100).aspx"&gt;CA1045&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not pass types by reference&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182145(VS.100).aspx"&gt;CA1046&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not overload operator equals on reference types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182138(VS.100).aspx"&gt;CA1047&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not declare protected members in sealed types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182140(VS.100).aspx"&gt;CA1048&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not declare virtual members in sealed types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182173(VS.100).aspx"&gt;CA1049&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Types that own native resources should be disposable&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182134(VS.100).aspx"&gt;CA1050&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Declare types in namespaces&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182141(VS.100).aspx"&gt;CA1051&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not declare visible instance fields&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182168(VS.100).aspx"&gt;CA1052&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Static holder types should be sealed&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182169(VS.100).aspx"&gt;CA1053&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Static holder types should not have constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182174(VS.100).aspx"&gt;CA1054&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;URI parameters should not be strings&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182176(VS.100).aspx"&gt;CA1055&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;URI return values should not be strings&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182175(VS.100).aspx"&gt;CA1056&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;URI properties should not be strings&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182170(VS.100).aspx"&gt;CA1057&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;String URI overloads call System.Uri overloads&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182171(VS.100).aspx"&gt;CA1058&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Types should not extend certain base types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182160(VS.100).aspx"&gt;CA1059&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Members should not expose certain concrete types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182161(VS.100).aspx"&gt;CA1060&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Move P/Invokes to NativeMethods class&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182143(VS.100).aspx"&gt;CA1061&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not hide base class methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182182(VS.100).aspx"&gt;CA1062&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Validate arguments of public methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms244737(VS.100).aspx"&gt;CA1063&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Implement IDisposable correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264484(VS.100).aspx"&gt;CA1064&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Exceptions should be public&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386039(VS.100).aspx"&gt;CA1065&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not raise exceptions in unexpected locations&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182191.aspx"&gt;CA1300&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Specify MessageBoxOptions&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182185.aspx"&gt;CA1301&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid duplicate accelerators&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182186.aspx"&gt;CA1302&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not hardcode locale specific strings&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182187(VS.100).aspx"&gt;CA1303&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not pass literals as localized parameters&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;-&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182189.aspx"&gt;CA1304&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Specify CultureInfo&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182190.aspx"&gt;CA1305&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Specify IFormatProvider&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182188.aspx"&gt;CA1306&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Set locale for data types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386080.aspx"&gt;CA1307&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Specify StringComparison&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386042.aspx"&gt;CA1308&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Normalize strings to uppercase&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb385972.aspx"&gt;CA1309&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use ordinal StringComparison&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182208(VS.100).aspx"&gt;CA1400&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;P/Invoke entry points should exist&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182209(VS.100).aspx"&gt;CA1401&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;P/Invokes should not be visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182197(VS.100).aspx"&gt;CA1402&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid overloads in COM visible interfaces&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182194(VS.100).aspx"&gt;CA1403&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Auto layout types should not be COM visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182199(VS.100).aspx"&gt;CA1404&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Call GetLastError immediately after P/Invoke&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182202(VS.100).aspx"&gt;CA1405&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;COM visible type base types should be COM visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182195(VS.100).aspx"&gt;CA1406&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid Int64 arguments for Visual Basic 6 clients&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182198(VS.100).aspx"&gt;CA1407&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid static members in COM visible types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182205(VS.100).aspx"&gt;CA1408&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not use AutoDual ClassInterfaceType&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182203(VS.100).aspx"&gt;CA1409&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Com visible types should be creatable&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182200(VS.100).aspx"&gt;CA1410&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;COM registration methods should be matched&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182201(VS.100).aspx"&gt;CA1411&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;COM registration methods should not be visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182207(VS.100).aspx"&gt;CA1412&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark ComSource interfaces as IDispatch&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182196(VS.100).aspx"&gt;CA1413&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid non-public fields in COM visible value types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182206(VS.100).aspx"&gt;CA1414&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark boolean P/Invoke arguments with MarshalAs&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182204(VS.100).aspx"&gt;CA1415&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Declare P/Invokes correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182216(VS.100).aspx"&gt;CA1500&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Variable names should not match field names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182216(VS.100).aspx"&gt;CA1500&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Variable names should not match field names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182213(VS.100).aspx"&gt;CA1501&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive inheritance&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182213(VS.100).aspx"&gt;CA1501&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive inheritance&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182212(VS.100).aspx"&gt;CA1502&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive complexity&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182212(VS.100).aspx"&gt;CA1502&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive complexity&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb164506(VS.100).aspx"&gt;CA1504&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review misleading field names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb164506(VS.100).aspx"&gt;CA1504&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review misleading field names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386043(VS.100).aspx"&gt;CA1505&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid unmaintainable code&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386043(VS.100).aspx"&gt;CA1505&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid unmaintainable code&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb397994(VS.100).aspx"&gt;CA1506&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive class coupling&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb397994(VS.100).aspx"&gt;CA1506&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive class coupling&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182219(VS.100).aspx"&gt;CA1600&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not use idle process priority&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182230(VS.100).aspx"&gt;CA1601&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not use timers that prevent power state changes&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182236(VS.100).aspx"&gt;CA1700&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not name enum values 'Reserved'&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264481(VS.100).aspx"&gt;CA1701&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Resource string compound words should be cased correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264474(VS.100).aspx"&gt;CA1702&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Compound words should be cased correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264483(VS.100).aspx"&gt;CA1703&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Resource strings should be spelled correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264492(VS.100).aspx"&gt;CA1704&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should be spelled correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182245(VS.100).aspx"&gt;CA1707&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should not contain underscores&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182242(VS.100).aspx"&gt;CA1708&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should differ by more than case&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182240(VS.100).aspx"&gt;CA1709&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should be cased correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182244(VS.100).aspx"&gt;CA1710&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should have correct suffix&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182247(VS.100).aspx"&gt;CA1711&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should not have incorrect suffix&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182237(VS.100).aspx"&gt;CA1712&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not prefix enum values with type name&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182238(VS.100).aspx"&gt;CA1713&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Events should not have before or after prefix&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264486(VS.100).aspx"&gt;CA1714&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Flags enums should have plural names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182243(VS.100).aspx"&gt;CA1715&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should have correct prefix&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182248(VS.100).aspx"&gt;CA1716&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should not match keywords&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264487(VS.100).aspx"&gt;CA1717&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Only FlagsAttribute enums should have plural names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182252(VS.100).aspx"&gt;CA1719&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Parameter names should not match member names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb531486(VS.100).aspx"&gt;CA1720&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should not contain type names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182253(VS.100).aspx"&gt;CA1721&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Property names should not match get methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182246(VS.100).aspx"&gt;CA1722&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Identifiers should not have incorrect prefix&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182257(VS.100).aspx"&gt;CA1724&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Type names should not match namespaces&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182251(VS.100).aspx"&gt;CA1725&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Parameter names should match base declaration&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182258(VS.100).aspx"&gt;CA1726&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use preferred terms&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182271(VS.100).aspx"&gt;CA1800&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not cast unnecessarily&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182268(VS.100).aspx"&gt;CA1801&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review unused parameters&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182280(VS.100).aspx"&gt;CA1802&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use literals where appropriate&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182278(VS.100).aspx"&gt;CA1804&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Remove unused locals&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182274(VS.100).aspx"&gt;CA1805&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not initialize unnecessarily&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;No&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182273(VS.100).aspx"&gt;CA1806&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not ignore method results&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182263(VS.100).aspx"&gt;CA1809&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid excessive locals&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182275(VS.100).aspx"&gt;CA1810&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Initialize reference type static fields inline&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182264(VS.100).aspx"&gt;CA1811&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid uncalled private code&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182265(VS.100).aspx"&gt;CA1812&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid uninstantiated internal classes&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182267(VS.100).aspx"&gt;CA1813&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid unsealed attributes&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182277(VS.100).aspx"&gt;CA1814&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Prefer jagged arrays over multidimensional&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182276(VS.100).aspx"&gt;CA1815&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Override equals and operator equals on value types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182269(VS.100).aspx"&gt;CA1816&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Call GC.SuppressFinalize correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/0fss9skc(VS.100).aspx"&gt;CA1819&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Properties should not return arrays&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182279(VS.100).aspx"&gt;CA1820&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Test for empty strings using string length&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264476(VS.100).aspx"&gt;CA1821&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Remove empty finalizers&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245046(VS.100).aspx"&gt;CA1822&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark members as static&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245042(VS.100).aspx"&gt;CA1823&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid unused private fields&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb385967(VS.100).aspx"&gt;CA1824&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark assemblies with NeutralResourcesLanguageAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182285(VS.100).aspx"&gt;CA1900&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Value type fields should be portable&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182284(VS.100).aspx"&gt;CA1901&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;P/Invoke declarations should be portable&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc667408(VS.100).aspx"&gt;CA1903&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use only API from targeted framework&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182289(VS.100).aspx"&gt;CA2000&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Dispose objects before losing scope&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb385973(VS.100).aspx"&gt;CA2001&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Avoid calling problematic methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182290(VS.100).aspx"&gt;CA2002&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not lock on objects with weak identity&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182291(VS.100).aspx"&gt;CA2003&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not treat fibers as threads&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182293(VS.100).aspx"&gt;CA2004&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Remove calls to GC.KeepAlive&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182294(VS.100).aspx"&gt;CA2006&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use SafeHandle to encapsulate native resources&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182310(VS.100).aspx"&gt;CA2100&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review SQL queries for security vulnerabilities&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182319.aspx"&gt;CA2101&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Specify marshaling for P/Invoke string arguments&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264489(VS.100).aspx"&gt;CA2102&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Catch non-CLSCompliant exceptions in general handlers&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182309(VS.100).aspx"&gt;CA2103&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review imperative security&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182302(VS.100).aspx"&gt;CA2104&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not declare read only mutable reference types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182299(VS.100).aspx"&gt;CA2105&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Array fields should not be read only&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182314(VS.100).aspx"&gt;CA2106&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Secure asserts&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182308(VS.100).aspx"&gt;CA2107&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review deny and permit only usage&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182307(VS.100).aspx"&gt;CA2108&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review declarative security on value types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182312(VS.100).aspx"&gt;CA2109&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review visible event handlers&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182306(VS.100).aspx"&gt;CA2111&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Pointers should not be visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182318(VS.100).aspx"&gt;CA2112&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Secured types should not expose fields&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182304(VS.100).aspx"&gt;CA2114&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Method security should be a superset of type&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182300(VS.100).aspx"&gt;CA2115&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Call GC.KeepAlive when using native resources&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182297(VS.100).aspx"&gt;CA2116&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;APTCA methods should only call APTCA methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182298(VS.100).aspx"&gt;CA2117&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;APTCA types should only extend APTCA base types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182311(VS.100).aspx"&gt;CA2118&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Review SuppressUnmanagedCodeSecurityAttribute usage&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182313(VS.100).aspx"&gt;CA2119&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Seal methods that satisfy private interfaces&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182317(VS.100).aspx"&gt;CA2120&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Secure serialization constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182320(VS.100).aspx"&gt;CA2121&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Static constructors should be private&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182303(VS.100).aspx"&gt;CA2122&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not indirectly expose methods with link demands&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182305(VS.100).aspx"&gt;CA2123&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Override link demands should be identical to base&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182322(VS.100).aspx"&gt;CA2124&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Wrap vulnerable finally clauses in outer try&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182321(VS.100).aspx"&gt;CA2126&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Type link demands require inheritance demands&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264493.aspx"&gt;CA2127&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Security transparent assemblies should not contain security critical code&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;No&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264482.aspx"&gt;CA2128&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Security transparent code should not assert&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;No&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264475.aspx"&gt;CA2129&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Security transparent code should not reference non-public security critical members&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;No&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997446(VS.100).aspx"&gt;CA2130&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Security critical constants should be transparent&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997564(VS.100).aspx"&gt;CA2131&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Security critical types may not participate in type equivalence&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd983956(VS.100).aspx"&gt;CA2132&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Default constructors must be at least as critical as base type default constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997710(VS.100).aspx"&gt;CA2133&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Delegates must bind to methods with consistent transparency&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997447(VS.100).aspx"&gt;CA2134&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Methods must keep consistent transparency when overriding base methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997569(VS.100).aspx"&gt;CA2135&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Level 2 assemblies should not contain LinkDemands&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264493(VS.100).aspx"&gt;CA2136&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Members should not have conflicting transparency annotations&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd983954(VS.100).aspx"&gt;CA2137&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods must contain only verifiable IL&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997711(VS.100).aspx"&gt;CA2138&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods must not call methods with the SuppressUnmanagedCodeSecurity attribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997565(VS.100).aspx"&gt;CA2139&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods may not use the HandleProcessCorruptingExceptions attribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264475(VS.100).aspx"&gt;CA2140&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent code must not reference security critical items&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997445(VS.100).aspx"&gt;CA2141&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods must not satisfy LinkDemands&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997567(VS.100).aspx"&gt;CA2142&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent code should not be protected with LinkDemands&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997566(VS.100).aspx"&gt;CA2143&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods should not use security demands&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997568(VS.100).aspx"&gt;CA2144&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent code should not load assemblies from byte arrays&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997570(VS.100).aspx"&gt;CA2145&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods should not be decorated with the SuppressUnmanagedCodeSecurityAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997443(VS.100).aspx"&gt;CA2146&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Types must be at least as critical as their base types and interfaces&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264482(VS.100).aspx"&gt;CA2147&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods may not use security asserts&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee155709(VS.100).aspx"&gt;CA2149&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Transparent methods must not call native code&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182363(VS.100).aspx"&gt;CA2200&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Rethrow to preserve stack details&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182338(VS.100).aspx"&gt;CA2201&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not raise reserved exception types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182334(VS.100).aspx"&gt;CA2202&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not dispose objects multiple times&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264488(VS.100).aspx"&gt;CA2204&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Literals should be spelled correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182365(VS.100).aspx"&gt;CA2205&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use managed equivalents of Win32 API&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182346(VS.100).aspx"&gt;CA2207&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Initialize value type static fields inline&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182347(VS.100).aspx"&gt;CA2208&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Instantiate argument exceptions correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182127(VS.100).aspx"&gt;CA2210&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Assemblies should have valid strong names&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182353(VS.100).aspx"&gt;CA2211&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Non-constant fields should not be visible&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182336(VS.100).aspx"&gt;CA2212&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not mark serviced components with WebMethod&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182328(VS.100).aspx"&gt;CA2213&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Disposable fields should be disposed&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182331(VS.100).aspx"&gt;CA2214&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not call overridable methods in constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182330(VS.100).aspx"&gt;CA2215&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Dispose methods should call base class dispose&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182329(VS.100).aspx"&gt;CA2216&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Disposable types should declare finalizer&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182335(VS.100).aspx"&gt;CA2217&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not mark enums with FlagsAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182358(VS.100).aspx"&gt;CA2218&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Override GetHashCode on overriding Equals&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386041(VS.100).aspx"&gt;CA2219&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not raise exceptions in exception clauses&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182341(VS.100).aspx"&gt;CA2220&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Finalizers should call base class finalizer&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182340(VS.100).aspx"&gt;CA2221&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Finalizers should be protected&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182332(VS.100).aspx"&gt;CA2222&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not decrease inherited member visibility&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182352(VS.100).aspx"&gt;CA2223&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Members should differ by more than return type&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182357(VS.100).aspx"&gt;CA2224&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Override equals on overloading operator equals&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182355(VS.100).aspx"&gt;CA2225&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Operator overloads have named alternates&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182356(VS.100).aspx"&gt;CA2226&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Operators should have symmetrical overloads&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182327(VS.100).aspx"&gt;CA2227&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Collection properties should be read only&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182339(VS.100).aspx"&gt;CA2228&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Do not ship unreleased resource formats&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182343(VS.100).aspx"&gt;CA2229&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Implement serialization constructors&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182366(VS.100).aspx"&gt;CA2230&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Use params for variable arguments&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182359(VS.100).aspx"&gt;CA2231&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Overload operator equals on overriding ValueType.Equals&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182351(VS.100).aspx"&gt;CA2232&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark Windows Forms entry points with STAThread&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182354(VS.100).aspx"&gt;CA2233&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Operations should not overflow&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182360(VS.100).aspx"&gt;CA2234&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Pass System.Uri objects instead of strings&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182349(VS.100).aspx"&gt;CA2235&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark all non-serializable fields&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182326(VS.100).aspx"&gt;CA2236&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Call base class methods on ISerializable types&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182350(VS.100).aspx"&gt;CA2237&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Mark ISerializable types with SerializableAttribute&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182344(VS.100).aspx"&gt;CA2238&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Implement serialization methods correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182362(VS.100).aspx"&gt;CA2239&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Provide deserialization methods for optional fields&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182342(VS.100).aspx"&gt;CA2240&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Implement ISerializable correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182361(VS.100).aspx"&gt;CA2241&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Provide correct arguments to formatting methods&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;-&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264491(VS.100).aspx"&gt;CA2242&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Test for NaN correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264490(VS.100).aspx"&gt;CA2243&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Attribute string literals should parse correctly&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb164705(VS.100).aspx"&gt;FxCopCmd Errors&lt;/a&gt;&lt;/h1&gt;  &lt;p&gt;No changes between Visual Studio 2008 and Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;Warning / Error&lt;/p&gt;            &lt;p&gt;Number&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Description&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Visual Studio Team System 2008&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Visual Studio 2010 Premium&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x0&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;No errors&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x1&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Analysis error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x2&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Rule exceptions&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x4&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Project load error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x8&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Assembly load error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x10&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Rule library load error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x20&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Import report load error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x40&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Output error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x80&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Command line switch error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x100&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Initialization error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x200&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Assembly references error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x400&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;BuildBreakingMessage&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;0x1000000&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Unknown error&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;C/C++ Code Analysis&lt;/h1&gt;  &lt;p&gt;No changes between Visual Studio 2008 and Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;Warning / Error&lt;/p&gt;            &lt;p&gt;Number&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Description&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Visual Studio Team System 2008&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Visual Studio 2010 Premium&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/3fb5eatz(VS.100).aspx"&gt;C6001&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;using uninitialized memory &amp;lt;variable&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/2ayc37ac(VS.100).aspx"&gt;C6011&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;dereferencing NULL pointer &amp;lt;name&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/0x76cd0s(VS.100).aspx"&gt;C6029&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;possible buffer overrun in call to &amp;lt;function&amp;gt;: use of unchecked value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/81s4zzd4(VS.100).aspx"&gt;C6031&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;return value ignored: &amp;lt;function&amp;gt; could return unexpected value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5dx7ef8x(VS.100).aspx"&gt;C6053&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;call to &amp;lt;function&amp;gt; may not zero-terminate string &amp;lt;variable&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182080(VS.100).aspx"&gt;C6054&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;string &amp;lt;variable&amp;gt; may not be zero-terminated&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t9a67d2b(VS.100).aspx"&gt;C6057&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer overrun due to number of characters/number of bytes mismatch in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/2b5wde95(VS.100).aspx"&gt;C6059&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect length parameter in call to &amp;lt;function&amp;gt;. Pass the number of remaining characters, not the buffer size of &amp;lt;variable&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/wkw5tfd8(VS.100).aspx"&gt;C6063&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;missing string argument to &amp;lt;function&amp;gt; corresponding to conversion specifier &amp;lt;number&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/26546f65(VS.100).aspx"&gt;C6064&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;missing integer argument to &amp;lt;function&amp;gt; corresponding to conversion specifier &amp;lt;number&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/9t8t51k6(VS.100).aspx"&gt;C6066&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;non-pointer passed as parameter &amp;lt;number&amp;gt; when pointer is required in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b760t248(VS.100).aspx"&gt;C6067&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;parameter &amp;lt;number&amp;gt; in call to &amp;lt;function&amp;gt; must be the address of the string&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182081(VS.100).aspx"&gt;C6200&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;index &amp;lt;name&amp;gt; is out of valid index range &amp;lt;min&amp;gt; to &amp;lt;max&amp;gt; for non-stack buffer &amp;lt;variable&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/11ckc29k(VS.100).aspx"&gt;C6201&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer overrun for &amp;lt;variable&amp;gt;, which is possibly stack allocated: index &amp;lt;name&amp;gt; is out of valid index range &amp;lt;min&amp;gt; to &amp;lt;max&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/6cb2bae4(VS.100).aspx"&gt;C6202&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer overrun for &amp;lt;variable&amp;gt;, which is possibly stack allocated, in call to &amp;lt;function&amp;gt;: length &amp;lt;size&amp;gt; exceeds buffer size &amp;lt;max&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/77w7wbyc(VS.100).aspx"&gt;C6203&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer overrun for buffer &amp;lt;variable&amp;gt; in call to &amp;lt;function&amp;gt;: length &amp;lt;size&amp;gt; exceeds buffer size&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/7exfe3st(VS.100).aspx"&gt;C6204&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;possible buffer overrun in call to &amp;lt;function&amp;gt;: use of unchecked parameter &amp;lt;variable&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/e7ca7stt(VS.100).aspx"&gt;C6209&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;using 'sizeof&amp;lt;variable1&amp;gt;' as parameter &amp;lt;number&amp;gt; in call to &amp;lt;function&amp;gt; where &amp;lt;variable2&amp;gt; may be an array of wide characters, did you intend to use character count rather than byte count?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/f1ac315x(VS.100).aspx"&gt;C6211&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Leaking memory &amp;lt;pointer&amp;gt; due to an exception. Consider using a local catch block to clean up memory&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/yy6dx731(VS.100).aspx"&gt;C6214&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;cast between semantically different integer types: HRESULT to a Boolean type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ws523se7(VS.100).aspx"&gt;C6215&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;cast between semantically different integer types: a Boolean type to HRESULT&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5w433f79(VS.100).aspx"&gt;C6216&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;compiler-inserted cast between semantically different integral types: a Boolean type to HRESULT&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/z5aa1ca1(VS.100).aspx"&gt;C6217&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Implicit cast between semantically different integer types: testing HRESULT with 'not'. Consider using SUCCEEDED or FAILED macro instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/f8xkayyz(VS.100).aspx"&gt;C6219&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Implicit cast between semantically different integer types: comparing HRESULT to 1 or TRUE. Consider using SUCCEEDED or FAILED macro instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/8fd23y4h(VS.100).aspx"&gt;C6220&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning C6220 - Implicit cast between semantically different integer types: comparing HRESULT to -1. Consider using SUCCEEDED or FAILED macro instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/s23ytbcb(VS.100).aspx"&gt;C6221&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Implicit cast between semantically different integer types: comparing HRESULT to an integer. Consider using SUCCEEDED or FAILED macros instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/sf8wacwc(VS.100).aspx"&gt;C6225&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Implicit cast between semantically different integer types: assigning 1 or TRUE to HRESULT. Consider using S_FALSE instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/02a42stb(VS.100).aspx"&gt;C6226&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Implicit cast between semantically different integer types: assigning -1 to HRESULT. Consider using E_FAIL instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/fa7f2a8w(VS.100).aspx"&gt;C6230&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;implicit cast between semantically different integer types: using HRESULT in a Boolean context&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hth877wa(VS.100).aspx"&gt;C6235&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;non-zero constant&amp;gt; || &amp;lt;expression&amp;gt;) is always a non-zero constant&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/s47sh3zd(VS.100).aspx"&gt;C6236&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;expression&amp;gt; || &amp;lt;non-zero constant&amp;gt;) is always a non-zero constant&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/tc0hhb88(VS.100).aspx"&gt;C6237&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;zero&amp;gt; &amp;amp;&amp;amp; &amp;lt;expression&amp;gt;) is always zero. &amp;lt;expression&amp;gt; is never evaluated and may have side effects&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/4tf88f7e(VS.100).aspx"&gt;C6239&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;non-zero constant&amp;gt; &amp;amp;&amp;amp; &amp;lt;expression&amp;gt;) always evaluates to the result of &amp;lt;expression&amp;gt;. Did you intend to use the bitwise-and operator?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/yf3fex1f(VS.100).aspx"&gt;C6240&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;expression&amp;gt; &amp;amp;&amp;amp; &amp;lt;non-zero constant&amp;gt;) always evaluates to the result of &amp;lt;expression&amp;gt;. Did you intend to use the bitwise-and operator?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/h91126xk(VS.100).aspx"&gt;C6242&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;A jump out of this try-block forces local unwind. Incurs severe performance penalty&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/35whedce(VS.100).aspx"&gt;C6244&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;local declaration of &amp;lt;variable&amp;gt; hides previous declaration at &amp;lt;line&amp;gt; of &amp;lt;file&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/eeb7y4c0(VS.100).aspx"&gt;C6246&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Local declaration of &amp;lt;variable&amp;gt; hides declaration of same name in outer scope. Additional Information: See previous declaration at &amp;lt;location&amp;gt;.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c5se1z6d(VS.100).aspx"&gt;C6248&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;setting a SECURITY_DESCRIPTOR’s DACL to NULL will result in an unprotected object&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b7h5eeyy(VS.100).aspx"&gt;C6250&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Calling &amp;lt;function&amp;gt; VirtualFree without the MEM_RELEASE flag may free memory but not address descriptors (VADs); results in address space leaks&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/41bk07s7(VS.100).aspx"&gt;C6255&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;_alloca indicates failure by raising a stack overflow exception. Consider using _alloca_s instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/xk46a7z3(VS.100).aspx"&gt;C6258&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;using TerminateThread does not allow proper thread clean up&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ww5y5h00(VS.100).aspx"&gt;C6259&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;labeled code is unreachable: (&amp;lt;expression&amp;gt; &amp;amp; &amp;lt;constant&amp;gt;) in switch-expr cannot evaluate to &amp;lt;case-label&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/3fbbcz2a(VS.100).aspx"&gt;C6260&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;sizeof * sizeof is almost always wrong, did you intend to use a character count or a byte count?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/7yhee2f0(VS.100).aspx"&gt;C6262&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Function uses &amp;lt;constant&amp;gt; bytes of stack: exceeds /analyze:stacksize&amp;lt;constant&amp;gt;. Consider moving some data to heap&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/94446w6y(VS.100).aspx"&gt;C6263&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;using _alloca in a loop; this can quickly overflow stack&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/wa4y3ac1(VS.100).aspx"&gt;C6268&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect order of operations: (&amp;lt;TYPE1&amp;gt;)(&amp;lt;TYPE2&amp;gt;)x + y. Possible missing parentheses in (&amp;lt;TYPE1&amp;gt;)((&amp;lt;TYPE2&amp;gt;)x + y)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/shas26ya(VS.100).aspx"&gt;C6269&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;possible incorrect order of operations: dereference ignored&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ka12w29t(VS.100).aspx"&gt;C6270&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;missing float argument to &amp;lt;function&amp;gt;: add a float argument corresponding to conversion specifier &amp;lt;number&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/at2yzcx3(VS.100).aspx"&gt;C6271&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;extra argument passed to &amp;lt;function&amp;gt;: parameter &amp;lt;number&amp;gt; is not used by the format string&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/whd3hkw6(VS.100).aspx"&gt;C6272&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;non-float passed as argument &amp;lt;number&amp;gt; when float is required in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/43dd9ae2(VS.100).aspx"&gt;C6273&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning 6273 - non-integer passed as parameter &amp;lt;number&amp;gt; when integer is required in call to &amp;lt;function&amp;gt;: if a pointer value is being passed, %p should be used&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5fc59f7w(VS.100).aspx"&gt;C6274&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;non-character passed as parameter &amp;lt;number&amp;gt; when character is required in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/9xkz60db(VS.100).aspx"&gt;C6276&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Cast between semantically different string types: char* to wchar_t*. Use of invalid string can lead to undefined behavior&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/4b4tecce(VS.100).aspx"&gt;C6277&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;NULL application name with an unquoted path in call to &amp;lt;function&amp;gt;: results in a security vulnerability if the path contains spaces&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/191z9hcz(VS.100).aspx"&gt;C6278&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&amp;lt;variable&amp;gt; is allocated with array new [], but deleted with scalar delete. Destructors will not be called&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/wzasf4t2(VS.100).aspx"&gt;C6279&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&amp;lt;variable&amp;gt; is allocated with scalar new, deleted with array delete []&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hdkf1w6d(VS.100).aspx"&gt;C6280&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&amp;lt;variable&amp;gt; is allocated with &amp;lt;function&amp;gt;, but deleted with &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/f0f02da9(VS.100).aspx"&gt;C6281&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning 6281 - incorrect order of operations: relational operators have higher precedence than bitwise operators&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/esa6csd7(VS.100).aspx"&gt;C6282&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/kkyz199f(VS.100).aspx"&gt;C6283&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&amp;lt;variable&amp;gt; is allocated with array new [], but deleted with scalar delete&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ta308ywy(VS.100).aspx"&gt;C6284&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;object passed as parameter '%d' when string is required in call to &amp;lt;function&amp;gt;.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/6k3z9ets(VS.100).aspx"&gt;C6285&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;non-zero constant&amp;gt; || &amp;lt;non-zero constant&amp;gt;) is always a non-zero constant. Did you intend to use the bitwise-and operator?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x032x8x9(VS.100).aspx"&gt;C6286&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;(&amp;lt;non-zero constant&amp;gt; || &amp;lt;expression&amp;gt;) is always a non-zero constant. &amp;lt;expression&amp;gt; is never evaluated and may have side effects&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/6dhhd6k6(VS.100).aspx"&gt;C6287&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;redundant code: the left and right sub-expressions are identical&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/8dat2ecs(VS.100).aspx"&gt;C6288&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect operator: mutual inclusion over &amp;amp;&amp;amp; is always zero. Did you intent to use || instead?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/70wx36ch(VS.100).aspx"&gt;C6289&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use &amp;amp;&amp;amp; instead?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/z01etkwy(VS.100).aspx"&gt;C6290&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Bitwise operation on logical result: ! has higher precedence than &amp;amp;. Use &amp;amp;&amp;amp; or (!(x &amp;amp; y)) instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/de0054fd(VS.100).aspx"&gt;C6291&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Bitwise operation on logical result: ! has higher precedence than |. Use || or (!(x | y)) instead&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/65wb8c6e(VS.100).aspx"&gt;C6292&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;ill-defined for-loop: counts up from maximum&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/58teb7hd(VS.100).aspx"&gt;C6293&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Ill-defined for-loop: counts down from minimum&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/107swz3y(VS.100).aspx"&gt;C6294&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/as9w81w9(VS.100).aspx"&gt;C6295&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Ill-defined for-loop: &amp;lt;variable&amp;gt; values are of the range &amp;quot;min&amp;quot; to &amp;quot;max&amp;quot;. Loop executed indefinitely&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/fxt5ta87(VS.100).aspx"&gt;C6296&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Ill-defined for-loop: Loop body only executed once&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/9t02bbsx(VS.100).aspx"&gt;C6297&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Result may not be an expected value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x8726e9z(VS.100).aspx"&gt;C6298&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;using a read-only string &amp;lt;pointer&amp;gt; as a writable string argument: this will attempt to write into static read-only memory and cause random crashes&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/wk9dtc16(VS.100).aspx"&gt;C6299&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;explicitly comparing a bit field to a Boolean type will yield unexpected results&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/y8s6swys(VS.100).aspx"&gt;C6302&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;format string mismatch: character string passed as parameter &amp;lt;number&amp;gt; when wide character string is required in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dw8fd2kt(VS.100).aspx"&gt;C6303&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;format string mismatch: wide character string passed as parameter &amp;lt;number&amp;gt; when character string is required in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aeh4k13s(VS.100).aspx"&gt;C6305&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;potential mismatch between sizeof and countof quantities&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/w34x51xt(VS.100).aspx"&gt;C6306&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;incorrect call to &amp;lt;function&amp;gt;: consider using &amp;lt;function&amp;gt; which accepts a va_list as an argument&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/kkedhy7c(VS.100).aspx"&gt;C6308&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;'realloc' may return null pointer: assigning a null pointer to &amp;lt;variable&amp;gt;, which is passed as an argument to 'realloc', will cause the original memory block to be leaked&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ea48xd9a(VS.100).aspx"&gt;C6309&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;argument &amp;lt;number&amp;gt; is null: it does not adhere to function specification of &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/4c4z33b8(VS.100).aspx"&gt;C6310&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;illegal constant in exception filter can cause unexpected behavior&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c34eyfac(VS.100).aspx"&gt;C6312&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Possible infinite loop: use of the constant EXCEPTION_CONTINUE_EXECUTION in the exception-filter expression of a try-except&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ek7ksb7c(VS.100).aspx"&gt;C6313&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect operator: Zero-valued flag cannot be tested with bitwise-and. Use an equality test to look for zero-valued flags&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/83x2a3tw(VS.100).aspx"&gt;C6314&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect order of operations: bitwise-or has higher precedence than the conditional-expression operator. Add parentheses to clarify intent&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/z9hde9ka(VS.100).aspx"&gt;C6315&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect order of operations: bitwise-and has higher precedence than bitwise-or. Add parentheses to clarify intent&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/f921xb29(VS.100).aspx"&gt;C6316&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Incorrect operator: tested expression is constant and non-zero. Use bitwise-and to determine whether bits are set&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/9k0s4y0w(VS.100).aspx"&gt;C6317&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;incorrect operator: logical-not (!) is not interchangeable with ones-complement (~)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/a57k07ae(VS.100).aspx"&gt;C6318&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Ill-defined __try/__except: use of the constant EXCEPTION_CONTINUE_SEARCH or another constant that evaluates to zero in the exception-filter expression. The code in the exception handler block is not executed&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/sy2k2e59(VS.100).aspx"&gt;C6319&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182083(VS.100).aspx"&gt;C6320&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;exception-filter expression is the constant EXCEPTION_EXECUTE_HANDLER. This may mask exceptions that were not intended to be handled&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/4w5x2fht(VS.100).aspx"&gt;C6322&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;empty _except block&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d13kts90(VS.100).aspx"&gt;C6323&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning 6323 - use of arithmetic operator on Boolean type(s)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ccf4h9w8(VS.100).aspx"&gt;C6324&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;potential incorrect use of &amp;lt;function1&amp;gt;: Did you intend to use &amp;lt;function2&amp;gt;?&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/tz3zbzw6(VS.100).aspx"&gt;C6326&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;potential comparison of a constant with another constant&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5c28xhds(VS.100).aspx"&gt;C6327&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Potential buffer overrun: SysAllocStringLen copies &amp;lt;number&amp;gt; characters from the string &amp;lt;variable&amp;gt; without validating the number of characters to copy. The code may crash&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms245348(VS.100).aspx"&gt;C6328&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning C6328:&amp;lt;type&amp;gt; passed as parameter &amp;lt;number&amp;gt; when &amp;lt;type&amp;gt; is required in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/1cstf8ce(VS.100).aspx"&gt;C6331&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Invalid parameter: passing MEM_RELEASE and MEM_DECOMMIT in conjunction to &amp;lt;function&amp;gt; is not allowed. This results in the failure of this call&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/byy91w4s(VS.100).aspx"&gt;C6332&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Invalid parameter: passing zero as the dwFreeType parameter to &amp;lt;function&amp;gt; is not allowed. This results in the failure of this call&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/et432wt2(VS.100).aspx"&gt;C6333&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Invalid parameter: passing MEM_RELEASE and a non-zero dwSize parameter to &amp;lt;function&amp;gt; is not allowed. This results in the failure of this call&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/debka1c0(VS.100).aspx"&gt;C6334&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;sizeof operator applied to an expression with an operator may yield unexpected results&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182084(VS.100).aspx"&gt;C6335&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;leaking process information handle &amp;lt;handlename&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182085(VS.100).aspx"&gt;C6336&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;arithmetic operator has precedence over question operator, use parentheses to clarify intent&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/y79a189e(VS.100).aspx"&gt;C6381&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Shutdown API &amp;lt;function&amp;gt; requires a valid dwReason or lpMessage&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182086(VS.100).aspx"&gt;C6383&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer overrun due to conversion of an element count into a byte count: an element count is expected for parameter &amp;lt;number&amp;gt; in call to &amp;lt;function&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182087(VS.100).aspx"&gt;C6384&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;dividing sizeof a pointer by another value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182088(VS.100).aspx"&gt;C6385&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid data: accessing &amp;lt;buffer name&amp;gt;, the readable size is &amp;lt;size1&amp;gt; bytes, but &amp;lt;size2&amp;gt; bytes may be read: Lines: x, y&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182089(VS.100).aspx"&gt;C6386&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer overrun: accessing &amp;lt;buffer name&amp;gt;, the writable size is &amp;lt;size1&amp;gt; bytes, but &amp;lt;size2&amp;gt; bytes may be written: Lines: x, y&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/k204dhw5(VS.100).aspx"&gt;C6387&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&amp;lt;argument&amp;gt; may be &amp;lt;value&amp;gt;: this does not adhere to the specification for the function &amp;lt;function name&amp;gt;: Lines: x, y&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5z2f9k0y(VS.100).aspx"&gt;C6388&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&amp;lt;argument&amp;gt; may not be &amp;lt;value&amp;gt;: this does not adhere to the specification for the function &amp;lt;function name&amp;gt;: Lines: x, y&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ba769hz2(VS.100).aspx"&gt;C6400&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Using &amp;lt;function name&amp;gt; to perform a case-insensitive compare to constant string &amp;lt;string name&amp;gt;. Yields unexpected results in non-English locales&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/8y7etsh4(VS.100).aspx"&gt;C6401&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Using &amp;lt;function name&amp;gt; in a default locale to perform a case-insensitive compare to constant string &amp;lt; string name&amp;gt;. Yields unexpected results in non-English locales&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182095(VS.100).aspx"&gt;C6500&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: value for &amp;lt;name&amp;gt; property is invalid&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182096(VS.100).aspx"&gt;C6501&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;annotation conflict: &amp;lt;name&amp;gt; property conflicts with previously specified property&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182097(VS.100).aspx"&gt;C6503&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;annotation conflict: references may not be marked Null=Yes or Null=Maybe&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182098(VS.100).aspx"&gt;C6504&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: property may only be used on values of pointer, pointer-to-member, or array type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182099(VS.100).aspx"&gt;C6505&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: MustCheck property may not be used on values of void type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182100(VS.100).aspx"&gt;C6506&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: &amp;lt;name&amp;gt; property may only be used on values of pointer or array types&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182101(VS.100).aspx"&gt;C6507&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;annotation conflict: Null property at Deref=0 on a post condition must be a subset of the Null property on the precondition&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182102(VS.100).aspx"&gt;C6508&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: write access is not allowed on const values&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182103(VS.100).aspx"&gt;C6509&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: 'return' cannot be referenced from a precondition&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182104(VS.100).aspx"&gt;C6510&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: NullTerminated property may only be used on values of pointer or array type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182105(VS.100).aspx"&gt;C6511&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: MustCheck property must be Yes or No&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182106(VS.100).aspx"&gt;C6512&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: Null property must be Maybe if the Valid property is No&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182107(VS.100).aspx"&gt;C6513&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: ElementSizeConst requires additional size properties&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182108(VS.100).aspx"&gt;C6514&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: value of the &amp;lt;name&amp;gt; property exceeds the size of the array&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182109(VS.100).aspx"&gt;C6515&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning C6515 - invalid annotation: &amp;lt;name&amp;gt; property may only be used on values of pointer type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182110(VS.100).aspx"&gt;C6516&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid annotation: no properties specified for &amp;lt;name&amp;gt; attribute&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182112(VS.100).aspx"&gt;C6517&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;annotation conflict: ValidElementsConst and ValidBytesConst may not be specified on the buffers that are not readable&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182113(VS.100).aspx"&gt;C6518&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;annotation conflict: WriteableElementsConst and WriteableBytesConst may not be specified on buffers that are not writable&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182115(VS.100).aspx"&gt;C6521&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid size specification: * operator can only be applied to pointer types&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182116(VS.100).aspx"&gt;C6522&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid size specification: expression must be of integral type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182117(VS.100).aspx"&gt;C6523&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid size specification: parameter &amp;lt;name&amp;gt; not found&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182119(VS.100).aspx"&gt;C6525&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;invalid size specification: property value may not be valid&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182120(VS.100).aspx"&gt;C6526&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning C6526 - invalid size specification: expression must be of array or pointer type&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182122(VS.100).aspx"&gt;C6530&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;warning 6530: unrecognized format string style &amp;lt;name&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182123(VS.100).aspx"&gt;C6535&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;buffer cannot be of size &amp;lt;n&amp;gt;, bigger than max(size_t)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;&lt;b&gt;Yes&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9983825" width="1" height="1"&gt;</description></item><item><title>What’s new in Code Analysis for Visual Studio 2010</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/22/what-s-new-in-code-analysis-for-visual-studio-2010.aspx</link><pubDate>Mon, 22 Mar 2010 16:26:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9983053</guid><dc:creator>Duke Kamstra</dc:creator><slash:comments>15</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=9983053</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2010/03/22/what-s-new-in-code-analysis-for-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;This post summarizes the new functionality you will experience sing the Code Analysis functionality in Visual Studio 2010. Note that Code Analysis is only available in the Premium and Ultimate editions of Visual Studio 2010.&lt;/p&gt;  &lt;h1&gt;Rule Sets&lt;/h1&gt;  &lt;p&gt;In Visual Studio 2010 you can manage the list of rules that are executed against your managed code using rule sets. Rule sets are persisted as xml files that may be included as part of your project or solution and checked into source code control along with your code. Visual Studio ships with several &lt;a href="http://msdn.microsoft.com/en-us/library/dd264925(VS.100).aspx"&gt;pre-defined rule sets&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Basic Correctness &lt;/li&gt;    &lt;li&gt;Basic Design Guidelines &lt;/li&gt;    &lt;li&gt;Extended Correctness &lt;/li&gt;    &lt;li&gt;Extended Design Guidelines &lt;/li&gt;    &lt;li&gt;Globalization &lt;/li&gt;    &lt;li&gt;Minimum Recommended &lt;/li&gt;    &lt;li&gt;Security &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The new rule set editor allows you to create your own custom rule sets. You access the rule set configuration dialog and &lt;a href="http://msdn.microsoft.com/en-us/library/dd380660(VS.100).aspx"&gt;rule set editor&lt;/a&gt; from the Project Properties \ Code Analysis tab. For more information on using rule sets see the MSDN documentation: &lt;a href="http://msdn.microsoft.com/en-us/library/dd264949(VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd264949(VS.100).aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You also have the ability to configure all projects in a solution to use the same rule set from the Solution Properties. See the MSDN documentation: &lt;a href="http://msdn.microsoft.com/en-us/library/dd465181(VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd465181(VS.100).aspx&lt;/a&gt;.&lt;/p&gt;  &lt;h1&gt;New Rules&lt;/h1&gt;  &lt;p&gt;The following managed code analysis rules are new&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182182(VS.100).aspx"&gt;CA1062&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Validate arguments of public methods&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182187(VS.100).aspx"&gt;CA1303&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Do not pass literals as localized parameters&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182289(VS.100).aspx"&gt;CA2000&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Dispose objects before losing scope&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182310(VS.100).aspx"&gt;CA2100&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Review SQL queries for security vulnerabilities&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997446(VS.100).aspx"&gt;CA2130&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Security critical constants should be transparent&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997564(VS.100).aspx"&gt;CA2131&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Security critical types may not participate in type equivalence&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd983956(VS.100).aspx"&gt;CA2132&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Default constructors must be at least as critical as base type default constructors&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997710(VS.100).aspx"&gt;CA2133&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Delegates must bind to methods with consistent transparency&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997447(VS.100).aspx"&gt;CA2134&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Methods must keep consistent transparency when overriding base methods&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997569(VS.100).aspx"&gt;CA2135&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Level 2 assemblies should not contain LinkDemands&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264493(VS.100).aspx"&gt;CA2136&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Members should not have conflicting transparency annotations&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd983954(VS.100).aspx"&gt;CA2137&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods must contain only verifiable IL&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997711(VS.100).aspx"&gt;CA2138&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods must not call methods with the SuppressUnmanagedCodeSecurity attribute&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997565(VS.100).aspx"&gt;CA2139&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods may not use the HandleProcessCorruptingExceptions attribute&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264475(VS.100).aspx"&gt;CA2140&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent code must not reference security critical items&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264475(VS.100).aspx"&gt;CA2140&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent code must not reference security critical items&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997445(VS.100).aspx"&gt;CA2141&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods must not satisfy LinkDemands&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997567(VS.100).aspx"&gt;CA2142&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent code should not be protected with LinkDemands&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997566(VS.100).aspx"&gt;CA2143&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods should not use security demands&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997568(VS.100).aspx"&gt;CA2144&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent code should not load assemblies from byte arrays&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997570(VS.100).aspx"&gt;CA2145&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods should not be decorated with the SuppressUnmanagedCodeSecurityAttribute&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd997443(VS.100).aspx"&gt;CA2146&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Types must be at least as critical as their base types and interfaces&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264482(VS.100).aspx"&gt;CA2147&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods may not use security asserts&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee155709(VS.100).aspx"&gt;CA2149&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Transparent methods must not call native code&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182334(VS.100).aspx"&gt;CA2202&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Do not dispose objects multiple times&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264488(VS.100).aspx"&gt;CA2204&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Literals should be spelled correctly&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182330(VS.100).aspx"&gt;CA2215&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Dispose methods should call base class dispose&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182361(VS.100).aspx"&gt;CA2241&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Provide correct arguments to formatting methods&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Rules CA1062, CA1303, CA2000, CA2100, CA2202, CA2204, CA2215 and CA2241 are all implemented using the new Phoenix analysis engine. We’ll discuss the Phoenix engine in a subsequent blog post.&lt;/p&gt;  &lt;h1&gt;Metrics&lt;/h1&gt;  &lt;p&gt;We improved the accuracy of calculating several metrics for switch statements and catch blocks.&lt;/p&gt;  &lt;h1&gt;New errors and warnings that FxCopCmd will generate&lt;/h1&gt;  &lt;p&gt;The follow new error codes may be generated when FxCopCmd is unable to successfully analyze your code for one reason or another.    &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330946(VS.100).aspx"&gt;CA0061&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;The rule 'RuleId' referenced in rule set 'RuleSetName' could not be found.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330941(VS.100).aspx"&gt;CA0062&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;The rule 'RuleId' could not be found.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330931(VS.100).aspx"&gt;CA0063&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Failed to load rule set file or one of its dependent rule set files.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330942(VS.100).aspx"&gt;CA0064&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;No analysis was performed because the specified rule set did not contain any FxCop rules.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff460123(VS.100).aspx"&gt;CA0065&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Unsupported metadata construct: Type '&lt;i&gt;TypeName&lt;/i&gt;' contains both a property and a field with the same name '&lt;i&gt;PropertyFieldName&lt;/i&gt;'&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;CA0066&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;The value '{0}' provided to the /targetframeworkversion is not a recognized version.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee330945(VS.100).aspx"&gt;CA0067&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Directory not found.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee340672(VS.100).aspx"&gt;CA0068&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Debug information could not be found for target assembly 'AssemblyName'.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff469833(VS.100).aspx"&gt;CA0069&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;UsingAlternatePlatform. FrameworkVersion1 could not be found. Using FrameworkVersion2 instead. For best analysis results please ensure that the correct .NET Framework is installed.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee524048(VS.100).aspx"&gt;CA0070&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Unable to analyze permission attributes&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Support for C# 4 language constructs&lt;/h1&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Support for C++ 0x language constructs&lt;/h1&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;What’s gone&lt;/h1&gt;  &lt;ul&gt;   &lt;li&gt;Policy Migration – TFS Checkin Policy &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;In Visual Studio 2008 you had the ability to copy your Code Analysis checkin policy settings from a TFS team project into the Solution / Project(s). This feature is not available in Visual Studio 2010. Use the new rule sets feature to configure the rules that will be executed during a build.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;The following rules are no longer available &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms182274(VS.100).aspx"&gt;CA1805&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Do not initialize unnecessarily&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;&amp;#160;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264493.aspx"&gt;CA2127&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Security transparent assemblies should not contain security critical code&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Replaced by &lt;a href="http://msdn.microsoft.com/en-us/library/bb264493(VS.100).aspx"&gt;CA2136&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264482.aspx"&gt;CA2128&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Security transparent code should not assert&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Replaced by &lt;a href="http://msdn.microsoft.com/en-us/library/bb264482(VS.100).aspx"&gt;CA2147&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top"&gt;           &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb264475.aspx"&gt;CA2129&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Security transparent code should not reference non-public security critical members&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top"&gt;           &lt;p&gt;Replaced by &lt;a href="http://msdn.microsoft.com/en-us/library/bb264475(VS.100).aspx"&gt;CA2140&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Managed C++ in-source suppression. Use the code analysis global suppression file. If you need the suppression attributes to be defined in your source code you will need to copy or move them from the global suppression file into your source code.&lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;Conclusion&lt;/h1&gt;  &lt;p&gt;Questions and comments are welcome. You may either post a comment for this blog or post a question on the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vstscode"&gt;Code Analysis team’s MSDN forum&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="5" face="Calibri"&gt;&lt;strong&gt;&lt;em&gt;The Visual Studio Code Analysis Team.&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9983053" width="1" height="1"&gt;</description></item><item><title>Fun with Code Analysis Rule Sets</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/11/12/fun-with-code-analysis-rulesets.aspx</link><pubDate>Wed, 12 Nov 2008 22:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9064155</guid><dc:creator>cristend</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=9064155</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/11/12/fun-with-code-analysis-rulesets.aspx#comments</comments><description>&lt;P&gt;Two weeks ago, I introduced you to Visual Studio 2010 September '08 CTP (Community Technology Preview). This CTP is available as a Virtual PC (VPC) image which can be downloaded at &lt;A href="http://go.microsoft.com/fwlink/?LinkId=129231" mce_href="http://go.microsoft.com/fwlink/?LinkId=129231"&gt;&lt;FONT color=#0000ff&gt;http://go.microsoft.com/fwlink/?LinkId=129231&lt;/FONT&gt;&lt;/A&gt;. The goal of the Community Technology Preview is to obtain feedback from our customers on the new scenarios we have enabled.&amp;nbsp; If you haven't already downloaded the CTP, do it now and take it out for a spin.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;There&amp;nbsp;are many new cool features with the CTP such as an Historical Debugger and&amp;nbsp;Impact Analysis of&amp;nbsp;code changes, but today we are going to focus on &lt;STRONG&gt;Rule Sets&lt;/STRONG&gt; for code analysis. (For an overview of all the neat stuff happening in code analysis, check out this PDC video&amp;nbsp;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin"&gt;&lt;A href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL60.wmv"&gt;http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL60.wmv&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;)&amp;nbsp;&amp;nbsp;Configuring code analysis in Visual Studio 2008 and earlier versions required evaluating each individual rule to determine whether it was important enough to turn on and fix for your project. This might be a very time-consuming process that made it difficult to make sure that the most important problems were identified and fixed. With rule sets, code analysis can now be configured much more quickly and easily with sets of rules that are targeted at specific scenarios or areas of emphasis. Let's take a look at&amp;nbsp;how this works.&lt;/P&gt;
&lt;P&gt;The following scenario comes from our CTP walkthrough.&amp;nbsp; You can find the walkthrough and more details when you download the CTP as described above.&amp;nbsp; Let's assume that you have the &lt;EM&gt;&lt;STRONG&gt;DinnerNow – Kiosk&lt;/STRONG&gt;&lt;/EM&gt; solution open and is the active project.&amp;nbsp; On the &lt;STRONG&gt;Analyze&lt;/STRONG&gt; menu, click &lt;STRONG&gt;Configure Code Analysis&lt;/STRONG&gt; &lt;STRONG&gt;for DinnerNow.Restaurants.Kiosk&lt;/STRONG&gt;.&amp;nbsp; The property page for Code Analysis is displayed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG title="Code Analysis Properties" style="WIDTH: 590px; HEIGHT: 376px" height=376 alt="Code Analysis Properties" hspace=1 src="http://blogs.msdn.com/photos/codeanalysis/images/9064354/original.aspx" width=590 vspace=1 border=1 mce_src="http://blogs.msdn.com/photos/codeanalysis/images/9064354/original.aspx"&gt;&lt;/P&gt;
&lt;P class=TextinList1 style="MARGIN: 3pt 0in 3pt 0.25in"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;This screen tells us that &lt;STRONG&gt;Microsoft All Rules&lt;/STRONG&gt; will be executed when we run code analysis, but what if we didn't want to run&amp;nbsp;every Microsoft rule?&amp;nbsp; What if we have a specific scenario we wish to target?&amp;nbsp; We can change which rule set to run by clicking on &lt;STRONG&gt;Open&lt;/STRONG&gt; which brings up:&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Add or Remove Rule Sets" style="WIDTH: 590px; HEIGHT: 387px" height=387 alt="Add or Remove Rule Sets" hspace=1 src="http://blogs.msdn.com/photos/codeanalysis/images/9064400/original.aspx" width=590 vspace=1 border=1 mce_src="http://blogs.msdn.com/photos/codeanalysis/images/9064400/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;We can select which rule set(s) by simply selecting or deselecting the appropriate box.&amp;nbsp; Notice that each rule set has a brief description of the types of rules within the rule set.&amp;nbsp; Further, you can open up each individual rule set and see the specific rules that make up the rules sets.&amp;nbsp; You can also turn on or off individual rules within a rule set.&amp;nbsp; Finally, you can adjust the type of action a rule will trigger.&amp;nbsp; In the past, code analysis rules&amp;nbsp;have been limited to build Warnings, but now you can elevate code analysis rules to build Errors.&lt;/P&gt;
&lt;P&gt;As you can see, rules sets provide a powerful way to focus code analysis on the scenarios and rules that matter most to you.&amp;nbsp; You can also create custom rule sets based on your specific needs.&amp;nbsp; We wont go into it today, but if you download the CTP, the Walkthrough explains how to customize a rule set.&lt;/P&gt;
&lt;P&gt;Give it a try and let us know what you think.&lt;/P&gt;
&lt;P&gt;Cris&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9064155" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Custom+Rules/">Custom Rules</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Community/">Community</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Rules/">Rules</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Tips+and+Tricks/">Tips and Tricks</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis+Policy/">Code Analysis Policy</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/CodeCommunit+Analysis/">CodeCommunit Analysis</category></item><item><title>New for Visual Studio 2008 SP1 and FxCop 1.36 – Multi-targeting rule</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx</link><pubDate>Mon, 25 Aug 2008 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8893369</guid><dc:creator>David M. Kean</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=8893369</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx#comments</comments><description>&lt;P&gt;I've just published a post over my blog about a new feature we added for Visual Studio 2008 SP1 and FxCop 1.36.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx" mce_href="http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx"&gt;New for Visual Studio 2008 SP1 and FxCop 1.36 – Multi-targeting rule&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8893369" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Rules/">Rules</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Team+System/">Team System</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category></item><item><title>FxCop 1.36 Released!</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/08/19/fxcop-1-36-released.aspx</link><pubDate>Tue, 19 Aug 2008 23:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8879660</guid><dc:creator>brettwo</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=8879660</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/08/19/fxcop-1-36-released.aspx#comments</comments><description>&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;We are&amp;nbsp;pleased to announce that we've &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&amp;amp;DisplayLang=en"&gt;&lt;FONT color=#0000ff&gt;released the next version of FxCop&lt;/FONT&gt;&lt;/A&gt;. This release has a number of changes since FxCop 1.36 Beta 2, including, but not limited to, the following:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Bug fixes that reduce noise, missing analysis and rule crashes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;New portability rule: Use Only API from Targeted Framework.&amp;nbsp; This rule will fire when the target assembly taking a dependency on a new API only included in a later version or in a service pack.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;New option for new portability rule for selecting target framework for analysis.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Set the target framework in the UI via &lt;B&gt;Project -&amp;gt; Option -&amp;gt; Spelling &amp;amp; Analysis -&amp;gt; Target Framework&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Set the target framework o&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;n the command-line via the /&lt;B&gt;targetframeworkversion&lt;/B&gt; switch. e.g: /targetframeworkversion:v2.0, /targetframeworkversion:v3.0, or /targetframeworkversion:v3.5&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Compared with FxCop 1.35, FxCop 1.36 Beta 2 had changes including, but not limited to, the following:&lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;200+ bug fixes that reduce noise, missing analysis and rule crashes &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Support for &lt;A href="http://blogs.msdn.com/fxcop/archive/2007/09/21/new-for-visual-studio-2008-support-for-anonymous-methods-and-lambda-expressions.aspx" mce_href="http://blogs.msdn.com/fxcop/archive/2007/09/21/new-for-visual-studio-2008-support-for-anonymous-methods-and-lambda-expressions.aspx"&gt;&lt;FONT color=#0000ff&gt;analyzing anonymous methods and lambda expressions&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;New option for skipping analysis over tool generated code&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Turn this on in the UI via &lt;B&gt;Project&lt;/B&gt; -&amp;gt; &lt;B&gt;Options&lt;/B&gt; -&amp;gt; &lt;B&gt;Spelling &amp;amp; Analysis&lt;/B&gt; -&amp;gt; &lt;B&gt;Suppress analysis results against generated code&lt;/B&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Turn this on on the command-line via the &lt;B&gt;/ignoregeneratedcode&lt;/B&gt; switch.&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Better support for C++/CLI and the Compact Framework &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Language 'friendly' API names in the UI and resolutions (ie Visual Basic syntax if running over a Visual Basic binary) &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;New globalization, design and usage rules &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Performance improvements that cut analysis by 2x and use half as much memory &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;Documentation that is &lt;A href="http://msdn2.microsoft.com/en-us/library/bb429476(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb429476(VS.80).aspx"&gt;&lt;FONT color=#0000ff&gt;now available on MSDN&lt;/FONT&gt;&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="LINE-HEIGHT: 150%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.75in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .75in" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There are also some other underlying changes that we will talk about in some future posts.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&amp;amp;DisplayLang=en"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;Download it&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;, and tell us what you think. If you have any feedback, bug reports or any questions, feel free to head over to the &lt;/FONT&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=98&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=98&amp;amp;SiteID=1"&gt;&lt;FONT size=3 face=Calibri&gt;Code Analysis&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; forum and ask away.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;B&gt;&lt;SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Note: &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&amp;nbsp;If you already have FxCop 1.36 Beta 2 installed, please uninstall it first before you install FxCop 1.36. Otherwise, you may see an error when you install FxCop 1.36 on top of FxCop 1.36 Beta 2. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;If you accidentally install FxCop 1.36 without uninstalling FxCop 1.36 Beta 2, please go to Add/Remove program to uninstall FxCop 1.36, and reinstall FxCop 1.36.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 150%; MARGIN: 0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: Arial; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;STRONG&gt;[EDIT] Note: &lt;/STRONG&gt;FxCop 1.36 RTM shipped with additional tracing turned on.&amp;nbsp; This can make the FxCop output harder to read.&amp;nbsp; To turn tracing off, edit the FxCop.exe.config or FxCopCmd.exe.config files in the FxCop install directory.&amp;nbsp; Find the line that contains &lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 11pt"&gt;&amp;lt;add name="Trace" value="2" /&amp;gt;&lt;/SPAN&gt; and change the "2" to "0".&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8879660" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Rules/">Rules</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Releases/">Releases</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Documentation/">Documentation</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/C_2B002B00_/">C++</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/CodeCommunit+Analysis/">CodeCommunit Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/y/">y</category></item><item><title>David Kean's new blog</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/06/10/david-kean-s-new-blog.aspx</link><pubDate>Tue, 10 Jun 2008 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8589158</guid><dc:creator>David M. Kean</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=8589158</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/06/10/david-kean-s-new-blog.aspx#comments</comments><description>&lt;P&gt;For those that are interested, I've just started a new personal blog, &lt;A class="" href="http://davesbox.com/" mce_href="http://davesbox.com/"&gt;Dave's Box&lt;/A&gt;, where I will be talking about FxCop, Framework Design Guidelines, and the recently announced &lt;A class="" href="http://davesbox.com/archive/2008/06/04/announcing-the-managed-extensibility-framework-ctp.aspx" mce_href="http://davesbox.com/archive/2008/06/04/announcing-the-managed-extensibility-framework-ctp.aspx"&gt;Managed Extensibility Framework&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I've just posted&amp;nbsp;a couple of posts detailing changes&amp;nbsp;we made to FxCop 1.36:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://davesbox.com/archive/2008/06/08/fxcop-now-ships-with-the-spell-checker-libraries.aspx" mce_href="http://davesbox.com/archive/2008/06/08/fxcop-now-ships-with-the-spell-checker-libraries.aspx"&gt;FxCop now ships with the spell checker libraries&lt;/A&gt;&lt;BR&gt;&lt;A class="" href="http://davesbox.com/archive/2008/06/10/reference-resolution-changes-in-code-analysis-and-fxcop-part-1.aspx" mce_href="http://davesbox.com/archive/2008/06/10/reference-resolution-changes-in-code-analysis-and-fxcop-part-1.aspx"&gt;Reference resolution changes in Code Analysis and FxCop&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You can subscribe via the one of the two following links:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="VERTICAL-ALIGN: middle" height=14 src="http://davesbox.com/images/feed-icon-14x14.png" width=14 mce_src="http://blogs.msdn.com/images/feed-icon-14x14.png" mce_style="vertical-align: middle"&gt;&amp;nbsp;&lt;A class=null href="http://feeds.feedburner.com/DavesBox" mce_href="http://feeds.feedburner.com/DavesBox"&gt;Subscribe via reader&lt;/A&gt; &lt;BR&gt;&lt;IMG style="VERTICAL-ALIGN: middle" height=14 src="http://davesbox.com/images/email.gif" width=14 mce_src="http://blogs.msdn.com/images/email.gif" mce_style="vertical-align: middle"&gt;&amp;nbsp;&lt;A class=null href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=2003699" mce_href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=2003699"&gt;Subscribe via email&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8589158" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Framework+Design+Guidelines/">Framework Design Guidelines</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>FxCop 1.35 now available (again) for download</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/02/29/fxcop-1-35-now-available-again-for-download.aspx</link><pubDate>Sat, 01 Mar 2008 01:11:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7964371</guid><dc:creator>David M. Kean</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=7964371</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/02/29/fxcop-1-35-now-available-again-for-download.aspx#comments</comments><description>&lt;p&gt;We've just uploaded FxCop 1.35 to &lt;a href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=codeanalysis&amp;amp;ReleaseId=553"&gt;MSDN Code Gallery&lt;/a&gt; after &lt;a href="http://blogs.msdn.com/fxcop/archive/2008/02/26/what-happened-to-the-download-and-documentation-of-fxcop-1-35.aspx"&gt;we lost our home on GotDotNet&lt;/a&gt; - this is for those teams that either do not want to or just aren't ready to upgrade to &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=3389F7E4-0E55-4A4D-BC74-4AEABB17997B&amp;amp;displaylang=en"&gt;FxCop 1.36 Beta&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;For those that are already using FxCop 1.35, you'll probably notice that we flicked the switch to cause it to prompt you to download FxCop 1.36. We've love you to download it and try it out (it can be installed side-by-side without any issues with FxCop 1.35). If you hit any bugs, issues or just have some feedback about the new or existing versions of FxCop, feel free to head over to the &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=98&amp;amp;SiteID=1"&gt;Code Analysis&lt;/a&gt; forum and post away.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7964371" width="1" height="1"&gt;</description></item><item><title>FAQ: How do I prevent FxCop 1.36 from firing warnings against generated code?</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/02/28/faq-how-do-i-prevent-fxcop-1-36-from-firing-warnings-against-generated-code.aspx</link><pubDate>Thu, 28 Feb 2008 21:39:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7936799</guid><dc:creator>David M. Kean</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=7936799</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/02/28/faq-how-do-i-prevent-fxcop-1-36-from-firing-warnings-against-generated-code.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;I've upgraded from FxCop 1.35 to 1.36 and now FxCop has started to fire warnings against typed DataSets and other generated code. How do I turn this off?&lt;/em&gt;&lt;/p&gt; &lt;p&gt;The reason this is occurring is because we changed the way that FxCop analyzed generated code. Whereas previously in 1.35, FxCop would only ignore particular generated code (such as DataSets), FxCop 1.36 will now either ignore no generated code, or all generated code. The former is the default.&lt;/p&gt; &lt;p&gt;To change this behavior and have FxCop skip over generated code:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Using an FxCop project:&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Open your FxCop project in FxCop&lt;/li&gt; &lt;li&gt;Choose &lt;strong&gt;Project&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Options&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Spelling &amp;amp; Analysis&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;Check &lt;strong&gt;Suppress analysis results against generated code&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Via the command-line:&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Pass the /ignoregeneratedcode switch, for example:&lt;br&gt;&lt;br&gt;&lt;font face="Courier New"&gt;FxCopCmd.exe /file:MyAssembly.dll /out:AnalysisResults.xml /ignoregeneratedcode&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;For more information on FxCop's behavior over generated code, see &lt;a href="http://blogs.msdn.com/fxcop/archive/2007/04/27/correct-usage-of-the-compilergeneratedattribute-and-the-generatedcodeattribute.aspx"&gt;Correct usage of the CompilerGeneratedAttribute and the GeneratedCodeAttribute&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7936799" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FAQ/">FAQ</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category></item><item><title>What happened to the download and documentation of FxCop 1.35?</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/02/26/what-happened-to-the-download-and-documentation-of-fxcop-1-35.aspx</link><pubDate>Wed, 27 Feb 2008 02:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7911459</guid><dc:creator>David M. Kean</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=7911459</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/02/26/what-happened-to-the-download-and-documentation-of-fxcop-1-35.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;Update:&lt;/STRONG&gt; You can now download FxCop&amp;nbsp;1.35 directly from &lt;A class="" href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=codeanalysis&amp;amp;ReleaseId=553" mce_href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=codeanalysis&amp;amp;ReleaseId=553"&gt;MSDN Code&amp;nbsp;Gallery&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you many you have well noticed, &lt;A href="http://gotdonet.com/" mce_href="http://gotdonet.com/"&gt;GotDotNet&lt;/A&gt; was officially retired last month now that the last of its functionality was superceded by &lt;A href="http://code.msdn.microsoft.com/" mce_href="http://code.msdn.microsoft.com/"&gt;MSDN Code Gallery&lt;/A&gt;. Unfortunately, at the same time, the FxCop team page, the download for FxCop 1.35 and the rule documentation was also removed. &lt;/P&gt;
&lt;P&gt;We were told last year about the deprecation of GotDotNet and we had hoped that by now we would have had a new team site on MSDN, however, a variety of factors, some within our control and some beyond our control, prevented that from happening in time. &lt;/P&gt;
&lt;P&gt;In the meantime, while we sort out new home for our beloved FxCop, here are a couple of workarounds:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;To download FxCop&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Upgrade to FxCop 1.36 Beta.&lt;/STRONG&gt; This is one of our most stable beta's to-date; which is not surprising considering that some of the same bits also shipped in Visual Studio 2008. Go ahead, &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=3389F7E4-0E55-4A4D-BC74-4AEABB17997B&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=3389F7E4-0E55-4A4D-BC74-4AEABB17997B&amp;amp;displaylang=en"&gt;download FxCop 1.36&lt;/A&gt; today - you won't be disappointed.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;Download the Windows SDK. &lt;/STRONG&gt;The Windows SDK includes the FxCop 1.35 setup. You might already have it installed if you have Visual Studio 2008, otherwise, &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&amp;amp;displaylang=en"&gt;download it&lt;/A&gt;. Either way, once installed, FxCop 1.35 setup can be found via &lt;STRONG&gt;Start&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;All Programs&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;Microsoft Windows SDK [Version]&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;Tools&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;Install Microsoft FxCop&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;STRONG&gt;To view the documentation&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;MSDN Library.&lt;/STRONG&gt; Both the &lt;A href="http://msdn2.microsoft.com/en-us/library/bb429476(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb429476(vs.80).aspx"&gt;FxCop documentation &lt;/A&gt;and &lt;A href="http://msdn2.microsoft.com/en-us/library/bb429379(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb429379(VS.80).aspx"&gt;rule documentation&lt;/A&gt; are available on the MSDN Library.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;Installed Help&lt;/STRONG&gt;. FxCop 1.35 comes with a CHM (pronounced 'chum') containing FxCop and rule documentation. Albeit a little out-of-date when compared to the online version, access it via &lt;STRONG&gt;Start&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;All Programs&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;Microsoft FxCop 1.35&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;FxCop Documentation&lt;/STRONG&gt; or via &lt;STRONG&gt;Help&lt;/STRONG&gt; -&amp;gt; &lt;STRONG&gt;Using Microsoft FxCop&lt;/STRONG&gt; inside FxCop.&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7911459" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Releases/">Releases</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Documentation/">Documentation</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category></item><item><title>Tutorial on writing your own Code Analysis rule</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/18/tutorial-on-writing-your-own-code-analysis-rule.aspx</link><pubDate>Fri, 18 Jan 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7143040</guid><dc:creator>David M. Kean</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=7143040</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/18/tutorial-on-writing-your-own-code-analysis-rule.aspx#comments</comments><description>&lt;P&gt;Jason Kresowaty has posted &lt;A class="" href="http://www.binarycoder.net/fxcop/" mce_href="http://www.binarycoder.net/fxcop/"&gt;a great tutorial on writing Code Analysis/FxCop rules&lt;/A&gt;. He also spends time on explaining parts of the Introspection&amp;nbsp;API, including the different nodes and their relationship to each other.&lt;/P&gt;
&lt;P&gt;It's a great read, even if you've written some Code Analysis rules before. Definitely recommended.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7143040" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Custom+Rules/">Custom Rules</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2005/">Visual Studio 2005</category></item><item><title>What do you want to see in the second edition of Framework Design Guidelines?</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/15/what-do-you-want-to-see-in-the-second-edition-of-framework-design-guidelines.aspx</link><pubDate>Tue, 15 Jan 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7112171</guid><dc:creator>David M. Kean</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=7112171</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/15/what-do-you-want-to-see-in-the-second-edition-of-framework-design-guidelines.aspx#comments</comments><description>&lt;TABLE class="" cellSpacing=0 cellPadding=0 width="100%" border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=187&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Framework Design Guidelines, Second Edition" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/WhatdoyouwanttoseeinthesecondeditionofFr_C50F/FrameworkDesignGuidelines_3.jpg" border=0 mce_src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/WhatdoyouwanttoseeinthesecondeditionofFr_C50F/FrameworkDesignGuidelines_3.jpg"&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/kcwalina" mce_href="http://blogs.msdn.com/kcwalina"&gt;Krzysztof&lt;/A&gt; and &lt;A href="http://blogs.msdn.com/brada" mce_href="http://blogs.msdn.com/brada"&gt;Brad&lt;/A&gt; &lt;A href="http://blogs.msdn.com/kcwalina/archive/2008/01/03/FrameworkDesignGuidelines2ndEdition.aspx" mce_href="http://blogs.msdn.com/kcwalina/archive/2008/01/03/FrameworkDesignGuidelines2ndEdition.aspx"&gt;have announced&lt;/A&gt; they are working on the second edition of the awesome &lt;A href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756" mce_href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756"&gt;Framework Design Guidelines&lt;/A&gt; and are looking for feedback on what they should put in it. &lt;/P&gt;
&lt;P&gt;For those that don't know, &lt;EM&gt;a lot&lt;/EM&gt; of our Code Analysis rules are based on the writings in this great book, so expect to see additional rules in the future based on the new guidelines in the second edition.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;To provide feedback, head over to &lt;A class="" href="http://blogs.msdn.com/kcwalina/archive/2008/01/03/FrameworkDesignGuidelines2ndEdition.aspx" mce_href="http://blogs.msdn.com/kcwalina/archive/2008/01/03/FrameworkDesignGuidelines2ndEdition.aspx"&gt;Krzysztof's blog&lt;/A&gt; and post a comment.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7112171" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Framework+Design+Guidelines/">Framework Design Guidelines</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Books/">Books</category></item><item><title>FAQ: Which Code Analysis rules shipped in which version?</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/07/faq-which-rules-shipped-in-which-version.aspx</link><pubDate>Mon, 07 Jan 2008 21:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7018062</guid><dc:creator>David M. Kean</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=7018062</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/07/faq-which-rules-shipped-in-which-version.aspx#comments</comments><description>&lt;P&gt;In response to &lt;EM&gt;a lot&lt;/EM&gt; of recent requests, we've put together a complete list of rules that shipped in the different versions of Visual Studio Code Analysis and FxCop. Attached is an Excel worksheet providing this information for Visual Studio 2005, Visual Studio 2008, FxCop 1.35 and FxCop 1.36 Beta.&lt;/P&gt;
&lt;P&gt;One of things you'll notice as you read through the list is that we removed some rules from the later versions. There are a few reasons for this:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Noise and applicability.&lt;/STRONG&gt; We use feedback from customers, &lt;A href="http://blogs.msdn.com/jensenh/archive/2006/04/05/568947.aspx" mce_href="http://blogs.msdn.com/jensenh/archive/2006/04/05/568947.aspx"&gt;SQM data&lt;/A&gt; (to see which rules users turn off), and input from internal teams (Windows, Office, CLR, etc) to determine the rules that are noisy without adding any perceivable value. There are also rules that are either no longer applicable or can no longer fire. for example, a rule could have been firing on a limitation of the CLR which has since been fixed in later versions.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;Merged rules&lt;/STRONG&gt;. Sometimes it makes sense to merge rules that fire on similar things, for example, the analysis in SecureGetObjectDataOverrides was already covered by OverrideLinkDemandsShouldBeIdenticalToBase, so these two rules were merged. Similarly, LongAcronymsShouldBePascalCased, ShortAcronymsShouldBeUppercase and IdentifiersShouldBeCasedCorrectly all fired on the casing of identifiers, and hence were merged in the later.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;Analysis engine removed.&lt;/STRONG&gt; In Visual Studio 2008 and FxCop 1.36 we removed one of our analysis engines. This engine was removed for a variety of reasons; it increased analysis time (although the engine encompassed less than 5% our analysis, it took up 50% of our time-to-analyze), indeterministic results (results appearing and disappearing between runs), and bugs found within the engine (and hence the rules that depended on it) required huge architectural changes. We instead decided to invest the resources that we would have spent on fixing the old engine, on a new data flow analysis engine based on &lt;A href="http://research.microsoft.com/phoenix/" mce_href="http://research.microsoft.com/phoenix/"&gt;Phoenix&lt;/A&gt;, which we will ship in a future version of Visual Studio.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;There are also more differences between Visual Studio Code Analysis and FxCop than just the rules - in a future blog post I will cover these in detail.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7018062" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-07-01-80-62/CodeAnalysisRules.xls" length="55296" type="application/octet-stream" /><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FAQ/">FAQ</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2005/">Visual Studio 2005</category></item><item><title>Reporting Code Analysis Defect Counts</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/02/reporting-code-analysis-defect-counts.aspx</link><pubDate>Wed, 02 Jan 2008 23:10:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6958609</guid><dc:creator>conorm</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6958609</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2008/01/02/reporting-code-analysis-defect-counts.aspx#comments</comments><description>&lt;ul&gt;   &lt;p&gt;Code analysis defect counts are available in the cube that is part of the &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=480&amp;amp;SiteID=1"&gt;TFS Data Warehouse&lt;/a&gt;. This post shows you how to hook up Excel to show code analysis counts in a &lt;a href="http://office.microsoft.com/en-us/excel/HA010346321033.aspx"&gt;pivot table&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;First off you need to connect Excel up to the data warehouse that has the data. Under the &lt;strong&gt;Data&lt;/strong&gt; tab in Excel select &lt;strong&gt;From Other Sources, From Analysis Services&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image001_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="213" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image001_thumb.png" width="435" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Then you need to give the name of the server with the data warehouse. In the standalone TFS case this will be whatever machine is running TFS. Assuming you have read permissions with your Windows account you can click &lt;strong&gt;Next&lt;/strong&gt;, otherwise enter a user name and password that has access to the server and click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image002_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="265" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image002_thumb.png" width="346" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Then, select the database (usually TfsWarehouse) and select the &lt;strong&gt;Build&lt;/strong&gt; table.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image003_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="263" alt="clip_image003" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image003_thumb.png" width="356" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Click &lt;strong&gt;Next&lt;/strong&gt; and then supply whatever additional information that will help you remember this data connection.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image004_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="313" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image004_thumb.png" width="361" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Click &lt;strong&gt;Finish&lt;/strong&gt;. Then define how you want to show the data in Excel - e.g. a pivot table.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image005_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="324" alt="clip_image005" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image005_thumb.png" width="367" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Click &lt;strong&gt;OK&lt;/strong&gt; which gives you the following:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image006_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="315" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image006_thumb.png" width="372" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;In the &lt;strong&gt;PivotTable Field List&lt;/strong&gt;, Expand &lt;strong&gt;Build Project&lt;/strong&gt; where you will find two fields: &lt;strong&gt;Static Analysis Errors&lt;/strong&gt; and &lt;strong&gt;Static Analysis Warnings&lt;/strong&gt;:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image007_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="143" alt="clip_image007" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image007_thumb.png" width="234" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;You can click the checkboxes to add these to the values for your table. In most cases &lt;strong&gt;Static Analysis Warnings&lt;/strong&gt; would be the most useful since &lt;strong&gt;Static Analysis Errors&lt;/strong&gt; would typically stop the build.&lt;/p&gt;    &lt;p&gt;To complete the picture you can play with the pivot table and pivot and filter as you see fit. As a simple example you can add the &lt;strong&gt;Build&lt;/strong&gt; field:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image008_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="107" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image008_thumb.png" width="235" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Which will give you one row per build in the pivot table.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image009_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="165" alt="clip_image009" src="http://blogs.msdn.com/blogfiles/fxcop/WindowsLiveWriter/ReportingCodeAnalysisDefectCounts_A7B3/clip_image009_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Of course this data can be combined with other build data and charted etc. according to your needs. We are considering what reporting to provide in future versions so would love to hear your feedback on this feature and what you would like to see.&lt;/p&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6958609" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Tips+and+Tricks/">Tips and Tricks</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Team+System/">Team System</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>Come chat with the Code Analysis team tomorrow</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/12/04/come-chat-with-the-code-analysis-team-tomorrow.aspx</link><pubDate>Tue, 04 Dec 2007 20:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6655538</guid><dc:creator>David M. Kean</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6655538</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/12/04/come-chat-with-the-code-analysis-team-tomorrow.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Join members of the Visual Studio Team System product group to discuss features available in Team Foundation Server, Team Suite, Architecture Edition, Development Edition, Database Edition, and Test Edition. In addition, discuss what's new for these editions for Visual Studio 2008.&lt;/P&gt;
&lt;P mce_keep="true"&gt;We will be holding two sessions:&lt;/P&gt;
&lt;P mce_keep="true"&gt;Join the &lt;A href="http://msdn.microsoft.com/chats"&gt;chat&lt;/A&gt; on Wednesday, December 5th, 2007 from 10:00am - 11:00am Pacific Time. &lt;A href="http://www.microsoft.com/communities/chats/vcs/07_1205_msdn_VSTS10.ics"&gt;Add to Calendar&lt;/A&gt; | &lt;A href="http://www.timeanddate.com/worldclock/fixedtime.html?month=12&amp;amp;day=5&amp;amp;year=2007&amp;amp;hour=10&amp;amp;min=0&amp;amp;sec=0&amp;amp;p1=234"&gt;Additional Time Zones&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -and-&lt;/P&gt;
&lt;P&gt;Join the &lt;A href="http://msdn.microsoft.com/chats"&gt;chat&lt;/A&gt; on Wednesday, December 5th, 2007 from 4:00pm - 5:00pm Pacific Time. &lt;A href="http://www.microsoft.com/communities/chats/vcs/07_1205_msdn_VSTS4.ics"&gt;Add to Calendar&lt;/A&gt; | &lt;A href="http://www.timeanddate.com/worldclock/fixedtime.html?month=12&amp;amp;day=5&amp;amp;year=2007&amp;amp;hour=16&amp;amp;min=0&amp;amp;sec=0&amp;amp;p1=234"&gt;Additional Time Zones&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6655538" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Community/">Community</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Metrics/">Code Metrics</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis+Policy/">Code Analysis Policy</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>Try the Code Analysis Rule Sets Feature in the November &amp;quot;Rosario&amp;quot; November 2007 CTP</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/28/try-the-code-analysis-rule-sets-feature-in-the-november-rosario-november-2007-ctp.aspx</link><pubDate>Thu, 29 Nov 2007 01:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6586375</guid><dc:creator>conorm</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6586375</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/28/try-the-code-analysis-rule-sets-feature-in-the-november-rosario-november-2007-ctp.aspx#comments</comments><description>&lt;p&gt;We have a great new feature that we are previewing in &lt;em&gt;Microsoft&amp;#174; Visual Studio&amp;#174; Team System code name &amp;#8220;Rosario&amp;#8221; November 2007 CTP&lt;/em&gt;.&amp;#160; This feature allows you to select pre-defined sets of rules to configure code analysis as well as define your own.&amp;#160; To access this feature right click on a project and choose &amp;quot;Properties&amp;quot; then click on the &amp;quot;Code Analysis&amp;quot; tab.&lt;/p&gt;  &lt;p&gt;This feature is in response to the feedback we received that the number of rules is overwhelming and difficult to configure.&lt;/p&gt;  &lt;p&gt;For this preview release we have focused on the core concept and made minimal changes to the UI.&amp;#160; In RTM we will have a new UI and a rich edit experience.&amp;#160; &lt;strong&gt;This release is all about getting your feedback&lt;/strong&gt;.&amp;#160; Try out this feature on your code, use the built-in rule sets and let us know what you think.&amp;#160; Tell us what we missed or what rules you think are there and should not be.&amp;#160; Your real-life experience is our best guide for this feature.&amp;#160; &lt;/p&gt;  &lt;p&gt;You can create a custom rule set to fine tune the exact rules to use.&amp;#160; If you think we should include your custom rule set in the out of the box sets then we want to hear from you (feedback links below).&amp;#160; Just attach the exported file to your connect bug or mail us.&lt;/p&gt;  &lt;p&gt;Some useful links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Release Post from JeffBe and download instructions - &lt;/strong&gt;&lt;a href="http://blogs.msdn.com/jeffbe/archive/2007/11/28/november-rosario-ctp-now-available.aspx"&gt;here&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Feedback - &lt;/strong&gt;bugs and suggestions can be submitted via &lt;a href="http://connect.microsoft.com/visualstudio"&gt;http://connect.microsoft.com/visualstudio&lt;/a&gt;. Make sure when you submit issues through Connect that you indicate the product version as being &amp;#8220;Visual Studio Team System Code Name &amp;#8220;Rosario&amp;#8221; (November 2007 CTP)&amp;#8221;. That will ensure it gets to the right folks for consideration. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Questions&lt;/strong&gt; - we&amp;#8217;ve created a special forum specifically focused on Rosario: &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1736&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1736&amp;amp;SiteID=1&lt;/a&gt; or you can respond to this blog post.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We look forward to hearing from you and hope you enjoy this new feature.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6586375" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Releases/">Releases</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>Positioning Code Metrics to Management</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/28/positioning-code-metrics-to-management.aspx</link><pubDate>Thu, 29 Nov 2007 01:08:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6585914</guid><dc:creator>conorm</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6585914</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/28/positioning-code-metrics-to-management.aspx#comments</comments><description>&lt;p&gt;Another question that is coming up is:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How can (or should) code metrics be presented to management ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;My view is that in all cases the metrics are something that can help make decisions around focus and prioritization. Management should be made aware of the metrics and what they mean to allow them to decide where to focus resources. If management is more levels away from the code then the Maintainability index can serve as a good, simple, metric.&lt;/p&gt;  &lt;p&gt;Sometimes you may ship code that has low maintainability or very high complexity etc. and management would make this decision based on risk, time and resources and perhaps other factors. Metrics helps them make that decision with quantitative data.&lt;/p&gt;  &lt;p&gt;Some possible options:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;One option is to present the metrics in terms of risk and mitigation. For example:&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;Risk: low maintainability in some module &lt;/li&gt;        &lt;li&gt;Mitigation: the module is reviewed. &lt;/li&gt;        &lt;li&gt;Risk: High cyclomatic complexity &lt;/li&gt;        &lt;li&gt;Mitigation: the module has a high number of test cases. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Another option is to evaluate the metrics on legacy code. This could be to select some code that is known to have lots of issues and then run the metrics on the code to see if metrics would report any issues with the code. This could be a good way to show value to management in the metrics themselves and make them case for them as a future preventative measure. &lt;/li&gt;    &lt;li&gt;Yet another option is to present a trend over time. Unfortunately the tool doesn't currently make this very easy but at each milestone of the project you can record the maintainability and other metrics for the modules. This could then be compared across time and used in future planning or to guide management in allocating time and resources to particular parts of the project that are trending badly. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I'd be very interested in hearing other approaches people have taken in presenting metrics or code analysis in general to management.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6585914" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Metrics/">Code Metrics</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>Maintainability Index Range and Meaning</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/20/maintainability-index-range-and-meaning.aspx</link><pubDate>Tue, 20 Nov 2007 19:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6437143</guid><dc:creator>conorm</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6437143</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/20/maintainability-index-range-and-meaning.aspx#comments</comments><description>&lt;p&gt;Another question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The maintainability index has been re-set to lie between 0 and 100.&amp;nbsp; How and why was this done?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The metric originally was calculated as follows: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)&lt;/p&gt;
&lt;p&gt;This meant that it ranged from 171 to an unbounded negative number.&amp;nbsp; We noticed that as code tended toward 0 it was clearly hard to maintain code and the difference between code at 0 and some negative value was not useful.&amp;nbsp;&amp;nbsp; I'll post some tech ed sample code showing very low maintainability or you can try on your own code to verify.&amp;nbsp; As a result of the decreasing usefulness of the negative numbers and a desire to keep the metric as clear as possible we decided to treat all 0 or less indexes as 0 and then re-base the 171 or less range to be from 0 to 100. Thus, the formula we use is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.sei.cmu.edu/str/descriptions/mitmpm.html"&gt;Maintainability Index&lt;/a&gt; = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On top of that we decided to be conservative with the thresholds.&amp;nbsp; The desire was that if the index showed red then we would be saying with a high degree of confidence that there was an issue with the code.&amp;nbsp; This gave us the following thresholds (as mentioned in this blog previously):&lt;/p&gt;
&lt;p&gt;For the thresholds we decided to break down this 0-100 range 80-20 so that we kept the noise level low and only flagged code that was really suspicious. We have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0-9 = Red&lt;/li&gt;
&lt;li&gt;10-19 = Yellow&lt;/li&gt;
&lt;li&gt;20-100 = Green&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6437143" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Metrics/">Code Metrics</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>Code Metrics as Check-in Policy</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/15/code-metrics-as-check-in-policy.aspx</link><pubDate>Fri, 16 Nov 2007 10:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6279586</guid><dc:creator>conorm</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6279586</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/15/code-metrics-as-check-in-policy.aspx#comments</comments><description>&lt;P&gt;This is the first in a series of posts around questions I am getting asked related to code metrics.&lt;/P&gt;
&lt;P&gt;One question that is coming up is:&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Can a check-in policy be defined based on code metrics in TFS?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Well, code metrics itself does not have a check-in policy but fortunately the Maintainability Index, Class Coupling, Depth of Inheritance and Complexity metrics are all available as rules in Code Analysis in Visual Studio.&amp;nbsp; This means you can use code analysis check-in policy enabled with those rules.&amp;nbsp; The rules are grouped under the "Maintainability Rules" Category and are configured as follows: &lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=621 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=160&gt;&lt;B&gt;Metric&lt;/B&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=245&gt;Corresponding Rule&lt;/TD&gt;
&lt;TD class="" vAlign=top width=214&gt;Threshold&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=160&gt;Depth of Inheritance&lt;/TD&gt;
&lt;TD class="" vAlign=top width=246&gt;CA1501 &lt;A href="http://msdn2.microsoft.com/en-us/library/ms182213(VS.90).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms182213(VS.90).aspx"&gt;AvoidExcessiveInheritance&lt;/A&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=214&gt;Warning at above 5 levels deep&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=160&gt;Complexity&lt;/TD&gt;
&lt;TD class="" vAlign=top width=246&gt;CA1502 &lt;A href="http://msdn2.microsoft.com/en-us/library/ms182212(VS.90).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms182212(VS.90).aspx"&gt;AvoidExcessiveComplexity&lt;/A&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=214&gt;Warning at above 25&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=160&gt;
&lt;P&gt;Maintainability Index&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=246&gt;CA1505 &lt;A href="http://msdn2.microsoft.com/en-us/library/bb386043(VS.90).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb386043(VS.90).aspx"&gt;AvoidUnmaintainableCode&lt;/A&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=214&gt;Warning at below 20&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=160&gt;Class Coupling&lt;/TD&gt;
&lt;TD class="" vAlign=top width=246&gt;CA1506 &lt;A href="http://msdn2.microsoft.com/en-us/library/bb397994(VS.90).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb397994(VS.90).aspx"&gt;AvoidExcessiveClassCoupling&lt;/A&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=214&gt;
&lt;P&gt;Warning at above 80 for class and above 30 for a method&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;In the policy editor this would look like the following: &lt;/P&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Code Metrics as a check-in policy" src="http://blogs.msdn.com/blogfiles/conorm/WindowsLiveWriter/CodeMetricsasCheckinPolicy_F36A/image_2.png" border=0&gt; 
&lt;P&gt;This allows you to enforce that code meets these thresholds before check-in.&amp;nbsp; In future we are looking in to allowing the threshold values to be changed. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6279586" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Metrics/">Code Metrics</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis+Policy/">Code Analysis Policy</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>Code Metrics Customization</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/15/code-metrics-customization.aspx</link><pubDate>Fri, 16 Nov 2007 02:54:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6279992</guid><dc:creator>conorm</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=6279992</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/11/15/code-metrics-customization.aspx#comments</comments><description>&lt;p&gt;A number of people have asked:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Is there a way to customize the existing code metrics or add additional ones?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The simple answer at this time is No.&amp;#xA0; There are no extension points or customizations available at this time for code metrics.&amp;#xA0; This feature was added late in the cycle for VS 2008 and we were out of time to design and add the required hooks. We will use this release to gather feedback about the sorts of extensions you want.&amp;#xA0; &lt;/p&gt;  &lt;p&gt;To that end please feel free to &lt;strong&gt;&lt;em&gt;respond to this post with information about any customizations or additional metrics that would be of interest to you&lt;/em&gt;&lt;/strong&gt;. This will help us a lot in our future planning.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6279992" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Visual+Studio+2008/">Visual Studio 2008</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Configuration/">Configuration</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Metrics/">Code Metrics</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/tsbt_2D00_dev/">tsbt-dev</category></item><item><title>FxCop 1.36 Beta Released!</title><link>http://blogs.msdn.com/b/codeanalysis/archive/2007/10/10/fxcop-1-36-beta-released.aspx</link><pubDate>Wed, 10 Oct 2007 23:09:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5393512</guid><dc:creator>David M. Kean</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/codeanalysis/rsscomments.aspx?WeblogPostID=5393512</wfw:commentRss><comments>http://blogs.msdn.com/b/codeanalysis/archive/2007/10/10/fxcop-1-36-beta-released.aspx#comments</comments><description>&lt;p&gt;I'm pleased to announce that we've &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3389f7e4-0e55-4a4d-bc74-4aeabb17997b&amp;amp;displaylang=en"&gt;released a beta of the next version of FxCop&lt;/a&gt;. This release has a number of changes since FxCop 1.35, including, but not limited to, the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;200+ bug fixes that reduce noise, missing analysis and rule crashes &lt;/li&gt;    &lt;li&gt;Support for &lt;a href="http://blogs.msdn.com/fxcop/archive/2007/09/21/new-for-visual-studio-2008-support-for-anonymous-methods-and-lambda-expressions.aspx"&gt;analyzing anonymous methods and lambda expressions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;New option for skipping analysis over tool generated code      &lt;ul&gt;       &lt;li&gt;Turn this on in the UI via &lt;strong&gt;Project&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Options&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Spelling &amp;amp; Analysis&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Suppress analysis results against generated code&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;Turn this on in the command-line via &lt;strong&gt;/ignoregeneratedcode&lt;/strong&gt; switch. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Better support for C++/CLI and the Compact Framework &lt;/li&gt;    &lt;li&gt;Language 'friendly' API names in the UI and resolutions (ie Visual Basic syntax if running over a Visual Basic binary) &lt;/li&gt;    &lt;li&gt;New globalization, design and usage rules &lt;/li&gt;    &lt;li&gt;Performance improvements that cut analysis by 2x and use half as much memory &lt;/li&gt;    &lt;li&gt;Documentation that is &lt;a href="http://msdn2.microsoft.com/en-us/library/bb429476(VS.80).aspx"&gt;now available on MSDN&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are also some other underlying changes that I will talk about in some future posts. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3389f7e4-0e55-4a4d-bc74-4aeabb17997b&amp;amp;displaylang=en"&gt;Download it&lt;/a&gt;, and tell us what you think. If you have any feedback, bug reports or any questions, feel free to head over to the &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=98&amp;amp;SiteID=1"&gt;Code Analysis&lt;/a&gt; forum and ask away.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5393512" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Releases/">Releases</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/Code+Analysis/">Code Analysis</category><category domain="http://blogs.msdn.com/b/codeanalysis/archive/tags/FxCop/">FxCop</category></item></channel></rss>