Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

FileNotFoundException System.ComponentModel.Annotations

Meu código da classe ProdutoDAO:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Agromais.Modelos;

namespace Agromais.DAL
{
    public class ProdutoDAO : IProdutoDAO
    {
        private AgromaisContext contexto;

        public ProdutoDAO()
        {
            contexto = new AgromaisContext();
        }

        public void Adicionar(Produto produto)
        {
            contexto.Produtos.Add(produto);
            contexto.SaveChanges();
        }

        public void Atualizar(Produto produto)
        {
            contexto.Produtos.Update(produto);
            contexto.SaveChanges();
        }

        public Produto GetProduto(int Id)
        {
            throw new NotImplementedException();
        }

        public List<Produto> GetListaProdutos()
        {
            return contexto.Produtos.ToList();
        }

        public void Remover(Produto produto)
        {
            contexto.Produtos.Remove(produto);
            contexto.SaveChanges();
        }

        public void Dispose()
        {
            contexto.Dispose();
        }
    }
}

No momento em que é executado o contexto.Produtos.ToList(); Está aparecendo FileNotFoundException:

System.IO.FileNotFoundException HResult=0x80070002 Message=Não foi possível carregar arquivo ou assembly 'System.ComponentModel.Annotations, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.

Em Referências não tem Annotations, tem DataAnnotations e está selecionada. Em NuGet System.ComponentModel.Annotations está instalado. Na pasta do Windows não existe System.ComponentModel.Annotations.dll, somente System.ComponentModel.DataAnnotations.dll

Não sei o que fazer... Não funciona de jeito nenhum!!!

3 respostas

Olá, Vitor

Qual a versão do componente está instalado?

Você pode forçar a instalação da versão que o erro está informando (4.2.0.0), digitando este comando no Nuget Package Manager Console:

PM> Install-Package System.ComponentModel.Annotations -Version 4.2.0

Acredito que seja um problema de versão incomatível do pacote que é exigido pelo pacote do Entity Framework que você instalou no seu projeto.

solução!

Olá Marcelo... Obrigado pela resposta. Eu consegui descobrir o problema. Eu separei a solução em mais projetos e estava com o Entity Framework instalado apenas na camada de acesso a dados.

Quando tentei executar pela camada de apresentação foi apresentado o erro.

Bastou instalar o Entity Framework na camada de apresentação que o erro parou de ocorrer.

Obrigado pelo auxílio.

PS: Estou no seu curso de LinQ! Curtindo demais!!! =D

Ah, agora tudo faz sentido! E obrigado pela gentileza, Vitor, fico muito feliz de estar curtindo o curso de LINQ!

Abraços!