Ainda não descobri por que isso ocorre, mas eu tinha classes na minha App_Code
pasta que estavam chamando métodos uma na outra, e fui bem ao fazer isso quando criei um projeto .NET 4.5.2, mas tive que reverta-o para 4.0, pois o servidor de destino não estava sendo atualizado. Foi quando eu encontrei esse problema (depois de corrigir o langversion
no meu web.config de 6 a 5 ... outra história) ....
Um dos meus métodos continuava tendo um erro como:
The type X.Y conflicts with the imported type X.Y in MyProject.DLL
Todas as minhas classes já estavam definidas como "Compilar" em suas propriedades, conforme sugerido na resposta aceita aqui, e cada uma tinha um espaço para nome comum que era o mesmo e cada uma using MyNamespace;
no topo de cada classe.
Descobri que se eu apenas movesse as classes ofensivas que precisavam chamar métodos uma para a outra pasta padrão chamada algo diferente de "App_Code", elas parariam de ter esse problema de conflito.
Nota : Se você criar uma pasta padrão chamada "AppCode", mova suas classes para ela, exclua a pasta "App_Code" e renomeie "AppCode" para "App_Code", seus problemas retornarão. Não importa se você usa a opção "Nova pasta" ou "Adicionar pasta ASP .NET" para criar "App_Code" - parece digitar o nome.
Talvez este seja apenas um problema do .NET 4.0 (e possivelmente anterior) ... Eu estava bem no 4.5.2 antes de ter que reverter!