Pergunta

Eu me pergunto se as pessoas (ou seja, da sociedade / desenvolvedores) realmente se preocupam com [SuppressMessage] atributos em torno de mentir nas assembleias de envio.

Criação de configurações separadas nos arquivos do projeto que incluem CODE_ANALYSIS no modo de versão e, em seguida, puxando-a na versão final parece uma espécie de sobrecarga evitáveis ??para mim.

O que vai ser a melhor stratergy, se um não quer estes permaneçam na montagem final, mas ainda quer usá-los em código? E há alguma vantagens / desvantagens de armazená-los em arquivos FxCop projeto?

[Eu estou vindo de um VS2008 Pro + FxCop 1,36, em vez de VS2008 Team System]

Foi útil?

Solução

No grande esquema das coisas, eu não acho que realmente importa. Uma vez que este é um atributo (efetivamente meta-dados), não faz o desempenho do código impacto. Dito isto, lembre-se que as informações no atributo está disponível para qualquer pessoa usando um disassember como refletor.

O problema com armazená-los no arquivo de projeto FxCop é que você deve, em seguida, garantir que os usos a todos o mesmo arquivo de projeto e que o arquivo de projeto sempre viaja com o projeto (é verificado no controle de origem, o que significa que você deve verificá-lo a cada vez que você deseja executar FxCop).

Se você não quer que atribui a SuppressMessage em seu código de produção seria necessário para definir apenas o símbolo CODE_ANALYSIS na compilação você estiver executando FxCop contra. Isto significa defini-lo, quer no seu configuração de depuração ou a adição de configurações adicionais. Os atributos só será compilado para o código quando o símbolo está definido.

Do ponto de vista compilação automatizada / noturno, você pode construir usando uma configuração que tem o símbolo definido e, em seguida, construir a versão de produção sem o símbolo ou fazer duas versões - uma com o símbolo definido, execute FxCop para obter suas violações, e em seguida, uma outra construção sem o símbolo definido.

Outras dicas

O atributo SuppressMessage só será adicionado ao seu código se a definição de pré-processamento CODE_ANALYSIS está presente durante uma compilação. Você pode verificar isso olhando para a definição do atributo na reflector.exe. Por padrão, este não está definido no lançamento por isso não afetará o código de produção.

Normalmente, eu só executar FxCop em compilações de depuração do meu assembléia onde CODE_ANALYSIS está definida.

Temos uma tonelada espalhados código de produção, e nós particularmente não me importo. Não faz efeito perf, e ter algum intrincada procurando atributo em uma classe muitas vezes dá motivação para removê-lo, se possível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top