在我的项目中,静态检查是禁用的,但当我使用cmd运行msbuild.exe时,它仍然会为每个项目启动静态检查……有没有办法通过参数来禁用它?
发布于 2011-02-22 03:43:03
这可能有点晚了,但因为我刚刚遇到了同样的问题,并且/p:RunCodeAnalysis=false不适用于我:
试试msbuild ... /p:CodeContractsRunCodeAnalysis=false。
根据the code contracts documentation和我的经验,从2011年2月起,这是可行的。
发布于 2010-08-10 03:59:15
以下命令应该可以完成此操作:
MSBuild ... /p:RunCodeAnalysis=false发布于 2013-08-23 00:01:08
如果您不想将参数传递给msbuild或正在从Visual Studio生成,有一种方法可以取消静态代码协定检查和代码分析。
注意:每个*.csproj文件都包含以下内容:<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />。
对于.Net 4.0 msbuild.exe和Microsoft.CSharp.targets,路径为"C:\Windows\Microsoft.NET\Framework\v4.0.30319\"
打开Microsoft.CSharp.targets在Project中添加新的PropertyGroup,如下所示:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
<PropertyGroup>
<CodeContractsRunCodeAnalysis>false</CodeContractsRunCodeAnalysis>
<RunCodeAnalysis>Never</RunCodeAnalysis>
<CodeContractsReferenceAssembly>DoNotBuild</CodeContractsReferenceAssembly>
</PropertyGroup>
...
<!-- a lot of stuff -->
...
</Project>这样做将模拟msbuild命令行参数(即/p:CodeContractsRunCodeAnalysis=false,RunCodeAnalysis=Never,CodeContractsReferenceAssembly=DoNotBuild
您现在在pc上的所有构建(来自MSBuild和Visual Studio)都将跳过代码和静态代码契约分析,因此您不需要从命令行传递参数。
https://stackoverflow.com/questions/3440097
复制相似问题