Minha solução C # WinForms tem dois projetos. Uma DLL que é o projeto principal em que estou trabalhando e um WinForms executável que chamo de "Sandbox" para que eu possa compilar / executar / depurar a DLL facilmente de uma vez.
Estou trabalhando em .Net 4.0 para os dois projetos.
Tudo estava funcionando bem até que adicionei um código aparentemente inocente e uma referência a System.Web na DLL. Agora meu projeto Sandbox não pode ver o namespace do projeto DLL. Eu não mudei nada que eu acredite que deveria ter afetado isso.
Se eu excluir a referência do projeto à DLL das referências da Sandbox e adicioná-la novamente, os sublinhados vermelhos desaparecerão e a codificação de cores voltará para todas as minhas classes etc; mas assim que tento construir a solução, tudo desmorona novamente.
Quando clico com o botão direito do mouse no projeto DLL nas referências do Sandbox e vejo no navegador de objetos, posso ver o namespace e todas as coisas nele.
Tenho a sensação de que isso pode ser algum tipo de bug.
É algum tipo de bug do VS2010? Tive esse mesmo problema há alguns meses e só pude corrigi-lo na época fazendo um projeto totalmente novo e reimportando meus arquivos. Desta vez, porém, tenho um bajilhão de arquivos e só farei isso como último recurso!
Edit: Depois de passar em pânico e desfazer todas as minhas alterações, tentando descobrir o que causou os problemas, parece ser esta linha:
string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address);
Se eu comentar esta linha, não recebo erros de namespace e o projeto é construído bem. Não consigo ver nada de errado com essa linha.
fonte
Verifique se ambos os projetos estão usando o perfil de não cliente para sua estrutura de destino (acesse as propriedades de cada projeto para fazer isso).
fonte
Uma possibilidade é que a versão de destino do .NET Framework da biblioteca de classes seja superior à do projeto. Enfrentei esse problema e o resolvi fechando o Visual Studio, reabrindo o Visual Studio, limpando e reconstruindo a solução. Isso funcionou para mim. Em alguns outros posts, li as respostas e a maioria dos usuários resolveu o problema seguindo este caminho.
fonte
Tente construir apenas o projeto com a dll Sandbox primeiro de forma independente.
Em seguida, aponte seu projeto executável para a dll necessária e verifique se
copy local
está definido comotrue
. nas configurações de referência.Em seguida, crie o projeto executável.
fonte
Alterar a estrutura de destino do ".NET Framweork 4 Client Profile" para ".NET Framework 4" funcionou para mim com um problema semelhante. Concordo que o perfil do cliente não parece ter muita vantagem em usá-lo. Parece que sou apanhado por erros estranhos que procuro até me lembrar que o Visual Studio usa como padrão o perfil do cliente. Acho que a moral da história ao receber um erro é: se "Rebuild Solution" não funcionar, verifique a estrutura de destino ...
fonte
Se você já tentou fazer a alteração do Framework e ainda não funcionou, espero que funcione para você (como funcionou para mim): Basta adicionar as referências necessárias de dentro de seus projetos. Muito óbvio, mas eu estava fazendo errado até descobrir qual era o problema.
fonte
Eu acabei de ter esse problema e descobri que tinha vários namespaces sendo usados com o mesmo nome de objeto (ou seja, os objetos de negócios tinham os mesmos nomes que modelos de mvc);
A qualificação total dos nomes resolveu o problema para mim.
fonte