Eu tentei EF 4.1.10715 e EF 4.1.10331.0 ambos os pacotes parecem ter como alvo o Framework 3.5, mas tem dependências no mscorlib, Versão 4.0.0.0
Abaixo está a captura de tela do Package Config para a versão 4.1.10331.0 desta manhã.
Na compilação, falhamos com
C:Program Files (x86)MSBuild12.0binMicrosoft.Common.CurrentVersion.targets(1635,5): warning MSB3258: The primary reference "EntityFramework" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
Alguma ideia?
Respostas:
1 para resposta № 1Depois de criar um novo projeto WinForm no Visual Studio 2012 com o .NET 3.5 como a estrutura de destino, instalei a versão 4.1.10715.0 do Entity Framework e tive os mesmos problemas.
Abrir o assembly EntityFramework referenciado no dotPeek confirma que ele foi compilado para o .NET 4.0.
Apesar do targetFramework indicar 3.5 em packages.config, o assembly referenciado foi compilado para o .NET 4.0.
<packages>
<package id="EntityFramework" version="4.1.10715.0" targetFramework="net35" /></packages>
Parece que alguém maltratou um pacote antes de publicar.
1 para resposta № 2
EntityFramework 4.0+ (incluindo 4.1) não suportam o .NET Framework 3.5. A única versão que você pode usar em um .NET Framework 3.5 é EF1, que faz parte do .NET Framework 3.5 SP1. Então, se você não tiver a versão do SP1, você não poderá usar a EF.