Desejo testar a classe principal de um plugin referenciando diretamente o projeto do plugin e instanciando a classe do plugin. Quando crio um projeto de aplicativo do Console App e adiciono uma referência ao projeto do plug-in, recebo um ícone de aviso (triângulo amarelo com ponto de exclamação) ao lado da referência na lista Referências.
Quando adiciono uma referência à dll, o assembly cria a saída do plug-in, não recebo esse aviso. O que esse aviso poderia estar tentando me dizer?
.net
mef
project-reference
ProfK
fonte
fonte
Respostas:
Conforme mencionado nos comentários da pergunta, diferentes versões do .NET Framework entre os projetos podem causar isso. Verifique as propriedades do seu novo projeto para garantir que uma versão padrão diferente não esteja sendo usada.
fonte
Foi encontrado o mesmo problema com um ASP.Net Web App e dois projetos de classe de biblioteca que precisavam ser referenciados no Web App. Eu não tinha informações fornecidas sobre o motivo da falha na compilação e as referências eram inválidas.
A solução foi garantir que todos os projetos tivessem o mesmo Target Framework:
No Visual Studio 2015- Clique com o botão direito do mouse em projeto> Propriedades> Aplicativo> Target Framework
Salvar, limpar e reconstruir a solução. As referências do projeto não devem mais aparecer como avisos amarelos e a solução será compilada.
Meu Web App estava direcionado ao .Net 4.5, enquanto os outros dois projetos de classes de bibliotecas dependentes estavam direcionados ao .Net v4.5.2
fonte
Para ambos (ou todos) os projetos que você deseja usar juntos:
Clique com o botão direito do mouse no projeto> Propriedades> Aplicativo> Estrutura .NET de Destino
Verifique se os projetos (ou todos) estão usando a mesma versão do .NET Framework.
fonte
uma. Vá para Ferramentas> Gerenciador de Pacotes Nuget> Tipo de Console do Package Manager - Update-Package -Reinstall (se não estiver funcionando, vá para 2.b )
b. ISSO É CRÍTICO, MAS A MAIOR POSSIBILIDADE QUE FUNCIONARÁ . Remova <Target> Talvez com várias linhas </ Target> normalmente encontradas na parte inferior do arquivo .csproj.
Salve, carregue e construa a solução.
fonte
Reinstale todos os pacotes em todos os projetos da solução atual:
fonte
Verifique se você tem os projetos direcionados para a mesma versão da estrutura . Na maioria das vezes, o motivo seria que o projeto atual (em que você está adicionando referência a outro projeto) aponta para uma versão de estrutura .net diferente das demais .
fonte
Verifique o NETFramework da dll referida e o projeto em que você está adicionando a DLL. Ex: DLL ==> Versão do supportedRuntime = "v4.0" Projeto ==> Versão do SupportRuntime = "v3.0"
Você receberá um ícone de aviso. Solução: torne a versão da DLL consistente.
fonte
Para mim, deparei-me com esse problema ao fazer referência a uma biblioteca de classes do .NET Standard 2.0 em um aplicativo de console do .NET Framework 4.7.1. Sim, as estruturas são diferentes, mas são compatíveis (o .NET Standard deve ser compatível com o .NET Core e o .NET Framework.) Tentei limpar, reconstruir, remover e ler a referência do projeto, etc ... sem sucesso . Por fim, sair do Visual Studio e reabrir resolveu o problema.
fonte
Faz muito tempo desde que essa pergunta foi feita, mas se alguém ainda estiver interessado - recentemente encontrei ícones semelhantes. Eu estava compilando um projeto C # .net usando o VS 2008. Descobri que o VS não conseguia localizar os assemblies para essas referências. Quando cliquei duas vezes no VS, atualizei as referências e removi os ícones em alguns deles [EDIT: que agora ele podia localizar]. Para as demais referências, tive que compilar os respectivos assemblies.
fonte
Adicionando meus 2 centavos à resposta @ kad81,
Vá para Visual Studio -> BUILD -> Configuration Manager
No menu suspenso "Active Solution Platform" no canto superior direito (o meu é o VS 2012), se for "Mixed Platforms", altere-o para a plataforma apropriada com base nos seus assemblies de referência de terceiros.
Em cada um dos projetos da lista, selecione a mesma plataforma para todo o projeto. (se x86 não existir, selecione "" e, em seguida, você pode selecionar "x86".)
Reconstrua os projetos da biblioteca primeiro e depois faça referência aos projetos. Espero que isto ajude.
fonte
Tente fechar e abrir o VS.
Parece bobagem, mas depois de 1 hora seguindo as instruções acima e encontrando tudo alinhado, tudo bem. Reiniciei o VS 2017 e os problemas desapareceram.
fonte
Em algum momento no núcleo do Asp.net, ele mostra um alerta se você alterar o espaço ou o nome do projeto. Para remover esse tipo de alerta, basta descarregar o projeto e carregá-lo novamente. Se o problema persistir, significa que você não pode encontrar sua referência de montagem.
fonte
Eu tinha esses ícones por um motivo diferente. Temos uma grande solução para todos os nossos projetos (quase 100). Fiz uma subseleção dos projetos nos quais me interessava e fiz uma nova solução. No entanto, as referências onde o projeto faz referência em vez de referências às dll compiladas ....
Após algumas pesquisas, encontrei este link no GitHub, que explica esse novo comportamento no VS2015.
Na página do GitHub, eles explicam uma solução alternativa para converter referências de projeto em referências binárias.
fonte
Para consertar algumas coisas que não estão funcionando, faz sentido remover algumas bibliotecas às vezes, como isso não soaria estranho.
De qualquer forma, acredito que o problema é muito amplo e pode ser causado por diferentes fatores , por isso, quero compartilhar minha situação / solução.
Eu tive um projeto (trazido pelo cliente) com as bibliotecas Xamarin Forms e Telerik. Em geral, a coisa estava relacionada aos componentes, cujas bibliotecas não estão incluídas na pasta packages nem disponíveis via Nuget (pagas).
Todo o projeto As referências eram "amarelas", pareciam horríveis e assustadoras.
A solução foi apenas remover essas referências da Telerik (incluindo alguns controles no código que estavam usando isso). Logo depois disso, todas as referências obtiveram magicamente sua cor cinza normal e os erros (principalmente) desapareceram.
"Principalmente" - porque mensagens de erro "todo vermelho" sobre "o elemento não está definido em nenhum lugar" às vezes acontecem ainda. Isso é estranho e traz inconveniência, mas ainda consigo compilar e executar o (s) projeto (s): só preciso limpar a solução, reiniciar o Visual Studio, orar um pouco, limpar novamente, remover as pastas obj / bin, reiniciar novamente e funciona bem.
O principal é remover as referências de bibliotecas não disponíveis , pois as mensagens de erro dizem absolutamente outras coisas. (Por exemplo, algo como "Xamarin.Build.Download.XamarinDownloadArchives não encontrou ou não consegue encontrar algo" etc. etc., mas isso pode significar que você não tem algumas referências disponíveis.
Em seguida, remova a pasta packages, recarregue / reabra o projeto / solução, vá para "Gerenciar pacotes Nuget" e clique no botão "Restaurar".
fonte
Usando o Visual Studio 2019 com todos os projetos direcionados ao .Net Core 3.1, a solução foi:
fonte
Eu também enfrentei o mesmo problema, mas meu caso foi um pouco diferente dos anteriores. Tentei abrir um projeto criado em um computador diferente. Descobri que o caminho para a pasta do pacote não é atualizado quando você adiciona uma referência; portanto, reiniciar o VS, alterar a versão do .NET ou qualquer recomendação mencionada não resolve o problema. Abri o arquivo csproj no bloco de notas ++ e corrigi todos os caminhos relativos à pasta packages. Então; todos os avisos se foram. Espero que ajude.
fonte
no VS 2017 Faça uma limpeza e depois compile
fonte
Obrigado a todos pela ajuda. Aqui está um detalhamento de como eu corrigi o meu problema:
Clique com o botão direito do mouse em seu projeto> Propriedades
Em Aplicativo, altere a Estrutura de destino. No meu caso, o ImageSharp estava usando o .Net 4.6.1. Você pode encontrar isso em packages.config.
Vá para as referências do seu projeto. Você notará que o SixLabors tem um triângulo amarelo. Você precisa atualizar o pacote NuGet.
Clique com o botão direito do mouse em Referências> Gerenciar pacotes NuGet.
Atualize o SixLabors.
Você pode ter pequenas atualizações de código (veja abaixo), mas isso corrigiu o meu problema.
Converter ImageSharp.Image em ImageSharp.PixelFormats.Rgba32?
fonte
No Visual Studio 2019, um dos meus projetos de estrutura de destino era o núcleo .net, mas fazia referência a outro projeto cuja estrutura de destino era o padrão .net. Alterei todos os projetos para fazer referência ao padrão .net e os ícones foram embora. Para ver qual é o seu projeto, clique com o botão direito do mouse e, em seguida, clique em Propriedades. Você também pode clicar normalmente no projeto em si e olhar para a tag <TargetFramework> em <PropertyGroup>
fonte
Em uma solução de vários projetos, se tudo falhar ... No projeto de inicialização, verifique. Dependências-> Montagens e veja se o projeto referenciado incorreto está lá. Remova e reconstrua.
fonte