Pergunta

As minhas referências do projeto de uma montagem (vou chamá-lo X) que faz referência a outro conjunto (vou chamá-lo Y).

Quando tento compilar meu projeto, ele exige que ele deve fazer referência assembly Y. Por que isso? Eu recebo o seguinte erro na linha onde a montagem X é referenciado:

O tipo 'DevExpress.XtraEditors.XtraForm' é definido num conjunto que não é referenciado. Você deve adicionar uma referência ao assembly 'DevExpress.Utils.v9.1, versão = 9.1.2.0, Culture = neutral, PublicKeyToken = b88d1754d700e49a'.

DevExpress.XtraEditors.XtraForm é o conjunto Y.

Por que isso? Eu não vi esse comportamento antes.

Foi útil?

Solução

Este tem sido sempre no lugar. Você só vai obter estas em tempo de compilação se você estiver usando um objeto que recebe métodos / propriedades / membros etc de montagem Y.

O porquê é porque .NET não pode confiar em conjunto X para garantir que ele será capaz de obter o símbolo adequado e informações de dados de meta.

Outras dicas

Este sempre foi o comportamento como a forma como o resto vai a compilação compilador seu projeto se ele não tem uma referência a todas as dependências?

Os conjuntos que são referenciados por seu projeto são necessários para a sua aplicação ao trabalho. Você está usando os tipos a partir dessas montagens e sem esses tipos sua aplicação não pode construir. Mais importante, sem esses tipos sua aplicação não pode ser executado.

Agora, considere que cada assembly que você referência foi construído da mesma forma como a sua montagem e exige que todos os seus assemblies referenciados estar presentes e contabilizadas. Isso cria uma reação em cadeia que pode ser irritante, mas o resultado final é que uma vez que você está executando o aplicativo, o CLR tem todas as igrejas que ele precisa para executar o aplicativo.

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