Como posso suprimir análise estática de código durante a compilação?
-
12-09-2019 - |
Pergunta
Nós temos uma solução com 15 projetos, que tudo tem de análise de código habilitado.
A solução leva facilmente 60+ segundos para construir, que é um tempo muito longo quando sentado esperando.
Se eu análise de código desativar constrói em 10 sesonds.
Eu adoraria ser capaz de análise de código de desativação numa base ad-hoc. Mas ainda assim eu quero análise de código quando a construção antes do check-in, e também Quero que o nosso servidor de compilação (Cruise Control) para continuar correndo com a análise Código habilitado.
Eu preferiria se a análise código está sendo executado de dentro do Visual Studio, para que eu possa ir diretamente para o código-fonte, se eu recebo um erro / aviso.
Solução
Aqui está como fazemos isso:
- Desativar (ou melhor: não permitir). Análise de Código (CA) para compilações de depuração
- Criar uma nova compilação de configuração chamado Verifique onde análise de código é ativado e avisos são tratados como erros.
- Mantenha compilação de lançamento como é.
Nós fazemos o nosso desenvolvimento normal no modo de depuração, e simplesmente ter uma regra informal de que você deve passar uma compilação Verifique antes check-in.
Isso é fácil de esquecer, mas corremos Integração Contínua (CI) na construção Verifique, por isso, se você check-in de código que tem avisos de análise de código, você quebrar a construir - para que as pessoas aprendem rapidamente a fazer um Verifique o manual de construção antes check-in:)
Você também pode simplesmente usar Debug sem CA and Release com a CA, mas desde permitindo CA define a constante CODE_ANALYSIS, isso significa que CA supressões serão incluídos no IL, e eu não preferem ter isso em minhas binários versão (YMMV) .
Outras dicas
Nós tivemos esse tipo de problema com as nossas coisas. Acabamos de processadores de 64 bits todos quad e entre 8 um carneiro 16GB. Além disso, tentamos limitar o número de projectos em qualquer ponto. Não a solução mais graciosa mas ajudou muito.