首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法不让MsBuild对代码契约运行静态契约分析?

有没有办法不让MsBuild对代码契约运行静态契约分析?
EN

Stack Overflow用户
提问于 2010-08-09 20:46:04
回答 3查看 1.9K关注 0票数 6

在我的项目中,静态检查是禁用的,但当我使用cmd运行msbuild.exe时,它仍然会为每个项目启动静态检查……有没有办法通过参数来禁用它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-22 03:43:03

这可能有点晚了,但因为我刚刚遇到了同样的问题,并且/p:RunCodeAnalysis=false不适用于我:

试试msbuild ... /p:CodeContractsRunCodeAnalysis=false

根据the code contracts documentation和我的经验,从2011年2月起,这是可行的。

票数 8
EN

Stack Overflow用户

发布于 2010-08-10 03:59:15

以下命令应该可以完成此操作:

代码语言:javascript
复制
MSBuild ... /p:RunCodeAnalysis=false
票数 2
EN

Stack Overflow用户

发布于 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.targetsProject中添加新的PropertyGroup,如下所示:

代码语言:javascript
复制
<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)都将跳过代码和静态代码契约分析,因此您不需要从命令行传递参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3440097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档