Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problemas usando EF7 no ASP.NET MVC

Olá,

estou tentando criar uma aplicação ASP.NET MVC com o EF7 mostrado nesse curso, mas estou com o seguinte problema:

Erro de Servidor no Aplicativo '/'.

Erro de Compilação

Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente. 

Mensagem de Erro do Compilador: CS0012: Tipo 'System.Object' está definido em um assembly que não é usado como referência. Adicione uma referência ao assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Erro de Origem:


Linha 18:                     <span class="icon-bar"></span>
Linha 19:                 </button>
Linha 20:                 @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
Linha 21:             </div>
Linha 22:             <div class="navbar-collapse collapse">

Arquivo de Origem: p:\WebApplication1\WebApplication1\Views\Shared\_Layout.cshtml    Linha: 20

Segue a ordem do que foi feito: - Criei um projeto ASP.NET Web Application, com Empty Template e pastas do MVC;

  • Alterei o "Target framework" para '.NET Framework 4.5.1', para poder funcionar na versão EF7;

  • Criei um Controller Home e uma View Index com o conteúdo padrão que o Visual Studio 2013 gera. Executei o projeto e funcionou normalmente;

  • Executei os comandos

    install-package entityframework.microsoftsqlserver -pre
    install-package entityframework.commands -pre

Após executar esses comandos e abrir o projeto novamente no navegador, gera o erro de compilação mostrado acima.

Procurando por esse erro, achei esse post: http://stackoverflow.com/questions/22822406/you-must-add-a-ref-to-system-runtime

Fiz a solução:

Adding a reference to this System.Runtime.dll assembly fixed the issue:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Runtime.dll

Voltou a funcionar, não há mais o erro de compilação mostrado acima, porém, quando chega na parte de Add-Migration ele volta a dar erro reclamando sobre a ausência da dll "System.Runtime".

Aqui está uma cópia do meu projeto: https://github.com/fsmasini/curso-entity-framework

Alguém já teve o mesmo problema?

1 resposta
solução!

Solução:

Trocar

  <system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.5"/>    
  </system.web>

Por

  <system.web>
    <compilation debug="true" targetFramework="4.6.1">
      <assemblies>
        <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.5"/>    
  </system.web>

(Novamente atualizei o framework, agora uso a versão 4.6.1)