在这里,我们在本地和构建服务器上运行一组Visual Studio 2008的CA规则。要签入,我们的CA规则必须与服务器策略匹配。但是,我在一个包含多个项目的大型解决方案上工作。在发布模式下构建项目需要很长时间才能启用CA规则,但在创建或编辑单元测试时这是必需的。这使得使用单元测试成为一项痛苦的任务。我想做的是快速(比通过所有项目禁用CA更快)在开发过程中禁用CA规则,然后在签入之前重新启用它们。有没有人知道这是否可能?
答案 0 :(得分:4)
我通常在解决方案级别为此创建一个“Debug No FxCop”构建配置,项目内部配置之间的唯一区别是Graham已经提到的RunCodeAnalysis属性。使用构建配置可以避免在想要在CA和非CA模式之间切换时重新加载解决方案。
答案 1 :(得分:3)
项目文件(C#的* .csproj)包含一个控制代码分析是否运行的元素 - <RunCodeAnalysis>true</RunCodeAnalysis>
。 (您可以通过在文本编辑器中打开项目文件,或在Visual Studio中卸载项目,然后选择“编辑”来查看。)
您可以编写一个脚本(例如使用PowerShell)来迭代所有项目文件,使用XPath选择上面的元素,并切换它的值(即true
到false
反之亦然。)
This question可能有用。