Compartilhar via


MSB4006 código de diagnóstico

Este artigo descreve o código de erro MSB4006.

Texto da mensagem

MSB4006: There is a circular dependency in the target dependency graph involving target 'value'. MSB4006: There is a circular dependency in the target dependency graph involving target 'value'. Since 'value' has 'value' dependence on 'value', the circular is 'value'.

Descrição

O MSBuild tem mecanismos para especificar quais destinos são executados antes ou depois de outros destinos, incluindo BeforeTargets e AfterTargets atributos, e DependsOnTargets atributos que especificam que um destino depende da saída de outro destino, portanto, precisa ser executado depois dele. O MSBuild usa essas informações para determinar a ordem de build de destino. Confira Ordem de build de destino.

Este erro ocorre quando você tem uma dependência circular no grafo de builds de destino. Há duas formas do erro, dependendo se o MSBuild foi capaz de identificar o problema de dependência específico ou não.

Esse erro também poderá ocorrer se você executar a tarefa MSBuild dentro de um destino, o que cria um build interno, e o build interno dependerá da compilação externa do projeto pai.

Resolução

Se o erro do MSBuild listar os destinos que causaram a dependência. Se estes forem destinos que você possui e pode modificar, examine os atributos AfterTargets, BeforeTargets e DependsOnTargets desses destinos e altere algo para evitar dependência circular. No entanto, é importante alterar os destinos da maneira certa. Consulte a lógica de ordem de build de destino para entender como o MSBuild determina a ordem de build e, em seguida, analise se as dependências são expressas corretamente.

Se a mensagem de erro não especificar os destinos específicos envolvidos na dependência circular, tente ativar os diagnósticos detalhados (use a opção -v:diag na linha de comando) ou tente usar o registrador binário e visualizá-lo no visualizador de log estruturado.

Aplica-se a

Todas as versões do MSBuild