在Microsoft Visual Studio 2012中禁用解决方案级别的代码分析

Nir*_*v31 12 visual-studio-2012

在我们的产品中,大约有400个项目,所以在VS 2012中,如果我想进行构建,那么它会为所有400个项目生成代码分析,我无法手动禁用每个项目的代码分析.所以我正在寻找一种机制来禁用整个解决方案(所有项目)的代码分析,而不是将这些设置应用于单个项目.

ms0*_*007 27

您可以使用一个小窍门描述为一个整体的Visual Studio实例禁用静态代码分析在这里.简而言之:

  • 打开一个 Developer Command Prompt for VS2012
  • 类型 set DevDivCodeAnalysisRunType=Disabled
  • 键入devenv以启动Visual Studio

相同的解决方案适用于Visual Studio 2015 via Developer Command Prompt for VS2015.


Cyb*_*axs 4

不确定使用 VS2012 是否可以轻松做到这一点。CodeAnalysis 在项目级别定义,取决于您的构建配置。比如Release中就没有代码分析。

首先,尝试创建基于Release的配置。

另一个解决方案(但非常糟糕)可能是运行批处理来修改所有项目文件。

这是一个示例项目文件(检查名为RunCodeAnalysis的元素):

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <RunCodeAnalysis>false</RunCodeAnalysis>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
Run Code Online (Sandbox Code Playgroud)