Eu tenho um projeto de Serviço de Dados WCF criado com o Visual Studio 2010, que estava funcionando bem. De repente, não compilou mais. Ele estava me dando mensagens como:
Erro 7 O tipo ou nome do espaço para nome 'Serviços' não existe no espaço para nome 'System.Data' (está faltando uma referência de montagem?) C: \ U ... s \ Visual Studio 2010 \ Projects ... \ DataService. cs ...
Erro 8 O tipo ou nome do espaço para nome 'Linq' não existe no espaço para nome 'Sistema' (está faltando uma referência de montagem?) DependencyResolver.cs 3 14
Erro 10 O tipo ou nome do espaço para nome 'Web' não existe no espaço para nome 'System.ServiceModel' (está faltando uma referência de montagem?)
Erro 12 Não foi possível encontrar o tipo ou nome do namespace 'DataService' (está faltando uma diretiva de uso ou uma referência de montagem?)
Como posso corrigir isso?
fonte
Respostas:
Eu tive o mesmo problema e tive que definir o "Target Framework" de todos os projetos para ser o mesmo. Então construiu bem. No menu Project, clique em ProjectName Properties. Clique na guia compilar. Clique em Opções avançadas de compilação. Na estrutura de destino, escolha a estrutura desejada.
fonte
Eu tive um problema com o System.Linq não sendo reconhecido. A
using
declaração tinha um tom vermelho, etc. A maneira que resolvi foi mudar meu site para atingir o dotnet 3.5 e depois voltar para a estrutura de destino original (4.0 no meu caso).fonte
System.Linq
como uma biblioteca válidoDescobri que isso é causado por eu ter o mesmo nome de espaço para nome que o nome da classe (
MyWorld.MyWorld = Namespace.ClassName
).Altere seu namespace para um nome que não seja o mesmo da sua classe e isso será compilado.
Fonte
fonte
Windows.Whatever
withglobal::
Eu enfrentei o mesmo problema em um site do ASP.NET MVC quando tentei usar o LINQ to SQL . Corrigi o problema:
Solution Explorer -> Referências -> Clique com o botão direito do mouse em System.Data.Linq -> Copy Local (True)
fonte
Verifique se sua estrutura de destino possui as mesmas versões do .NET. Eu tive o mesmo problema e minha classe .NET era 3.5 e a solução web 4.5. Eu os sincronizei e funcionou :)
fonte
Eu tive o mesmo problema e tentei todas as opções acima sem êxito, então descobri o que era:
Eu criei uma pasta chamada "Sistema" em um dos meus projetos e criei uma classe nela. O problema parece resultar de um espaço para nome chamado "Sistema" quando o arquivo .cs é criado, mesmo que esteja no espaço para nome "MyProject.System".
Olhando para trás, posso entender por que isso causaria problemas. Ele realmente me surpreendeu a princípio, pois as mensagens de erro inicialmente não parecem se relacionar com o problema.
fonte
Eu experimentei o mesmo problema com o System.Data.SQLite. A origem do problema é que a dll que você usou deve ter a mesma versão do .NET com seu projeto.
Por exemplo, se você usou (no meu caso) SQLite para .NET 4.5, o destino da plataforma também deve ser o .NET 4.5.
Você pode encontrar o destino da plataforma: Projeto> (nome do projeto) Propriedades> Construir.
fonte
No meu caso, o problema estava acontecendo porque a classe que eu criei tinha um espaço para nome que interferia nas classes existentes. A nova classe A tinha espaço para nome zz.yy.xx (por engano). As referências a objetos em outro espaço para nome yy.xx não estavam sendo compiladas na classe A ou em outras classes cujo espaço para nome era zz.
Alterei o namespace da classe A para yy.xx, que deveria ter sido e começou a funcionar.
fonte
PARA QUALQUER PESSOA COM ARQUIVOS LIGADOS: Eu tive esse problema e estava usando o silverlight e o arquivo incorreto que estava lançando esse erro era um arquivo vinculado.
O erro do compilador me disse que o erro estava ocorrendo no projeto em que o arquivo residia. Acabou que o erro NÃO estava naquele projeto, estava ocorrendo no projeto que continha o arquivo vinculado. Faltava referência a esse projeto.
fonte
Encontrei esse problema ao usar a integração Git do Visual Studio para gerenciar o projeto. Por alguma razão, o projeto do Windows Phone 8 seria compilado muito bem ao direcionar o x86, mas quando eu o definia como ARM, falhava ao compilar com um erro indicando que "Publicidade" não existia no espaço de nome da Microsoft.
Acabei resolvendo o problema removendo a referência Microsoft.Advertising. *. Dll e adicionando-o novamente.
fonte
No meu caso, não houve alteração nos projetos, apenas parou para compilar e com "o nome do tipo ou espaço para nome XXX não existe" e, na própria classe reclamante, o intellisense para esse espaço / classe XXX funciona bem. O problema estava mesmo em referências!
Passos para reproduzir:
A solução possui o ProjectA, ProjectB. ProjetoA faz referência a log4net de terceiros e está marcado
Copy local: true
. O ProjectB faz referência ao ProjectA e não tem referência ao log4net. Solução compila bem.Alteração na propriedade ProjectA: referência para log4net
Copy local: false
.This is because ProjectB
pasta bin está faltando biblioteca de terceiros(log4net in my case)!
Nesse caso, a solução seria -
Copy local: true
oufonte
Estou fazendo referência a Microsoft.CommerceServer.Runtime.Orders e o erro ocorreu. Este projeto é antigo e possui o framework .NET 2.0 da Target. Na saída, tive este erro:
Simplesmente mudei o framework de destino para o .NET 4 e agora ele cria.
fonte
E se tudo mais falhar, como garantir que as estruturas de destino sejam iguais e que você esteja lidando com uma biblioteca de classes WPF no VS2010, basta reiniciar o Visual Studio. Isso fez por mim.
fonte
type namespace error
ocorrência. E eu reinicio o visual studio, após reiniciar, o erro de dll original é exibido novamente, e eu o leio novamente e construo novamente, com sucesso.Eu experimentei os mesmos erros. Depois que descobri que meu projeto tinha o nome errado do Assembly (copiei os arquivos de um projeto diferente e os espaços para nome ficaram um pouco confusos) e o alterei novamente, o projeto foi compilado de maneira agradável.
fonte
Recebi uma mensagem de erro muito semelhante causada por inadvertidamente criar uma duplicata de uma classe em outro projeto da minha solução. A exclusão da duplicata corrigiu o problema
fonte
Recentemente, eu precisei fazer uma restauração do sistema e isso causou a alteração / desaparecimento de vários arquivos nos quais eu trabalhava desde a restauração. Alguns desses eram arquivos DLL. Usei o Source Control para recuperar o projeto inteiro, mas ainda tinha um problema semelhante ao acima. Eu encontrei esta resposta que descreveu você pode precisar remover uma DLL e lê-la para corrigir seus erros. Este foi o caso no meu cenário.
Removê
WebMatrix.WebData
-lo e lê-lo, além de adicionar noWebMatrix.Data
meu erro corrigidoThe type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...
.fonte
Exclua o arquivo .refresh.dll se você estiver sob controle de origem. Depois reconstrua. Deveria funcionar. Isso funcionou para mim
fonte