Próbuję wdrożyć podstawową aplikację MVC 4, która używa Entity Framework 6 (Code First) i SQL Compact 4.0 na czystej instalacji systemu Windows 7 z zainstalowaną iis (nie zainstalowano mvc 4 i sql compact 4.0).ASP.NET MVC 4 + Entity Framework 6 + instalacja SQL Compact Edition 4.0 bez instalacji
mam następujące pakiety Nuget zainstalowane w ramach projektu DB:
- EntityFramework (wersja 6.0.0-alfa 2)
- EntityFramework.SqlServerCompact (wersja 6.0.0-alfa 2)
- Microsoft. AspNet.Providers (wersja 1,2)
- Microsoft.AspNet.Providers.Core (wersja 1,2)
- Microsoft.SqlServer.Compact (wersja 4.0.8876.1)
W web.config mam następujący config:
<connectionStrings>
<add name="[Name]" connectionString="Data Source=|DataDirectory|[FileName].sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
......................
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</providers>
</entityFramework>
folderu Bin (plików SQL CE są w folderze amd64 oraz x86:
- [amd64]
- [x86]
- Antlr3.Runtime.dll
- DotNetOpenAuth.AspNet.dll
- DotNetOpenAuth.Core.dll
- DotNetOpenAuth.OAuth.Consumer.dll
- DotNetOpenAuth.OAuth.dll
- DotNetOpenAuth.OpenId.dll
- DotNetOpenAuth.OpenId.RelyingParty.dll
- EntityFramework.dll
- EntityFramework.SqlServer.dll
- EntityFramework.SqlServer.xml
- EntityFramework.SqlServerCompact.dll
- EntityFramework.SqlServerCompact.xml
- EntityFramework.xml
- Microsoft.Web.Infrastructure.dll
- Microsoft.Web.WebPages.OAuth.dll
- Newtonsoft.Json.dll
- ShipMedProto.DB. dll
- ShipMedProto.DB.pdb
- ShipMedProto.Web.dll
- ShipMedProto.Web.pdb
- System.ComponentModel.DataAnnotations.dll
- System.Data.DataSetExtensions.dll
- System.Data.SqlServerCe.dll
- System.Data.SqlServerCe.Entity.dll
- System.Net.Http.Formatting .dll
- System.Web.Helpers.dll
- System.Web.Http.dll
- System.Web.Http.WebHost.dll
- System.Web.Mvc.dll
- system.Web. Optimization.dll
- System.Web.Providers.dll
- System.Web.Razor.dll
- System.Web.WebPages.Deployment.dll
- System.Web.WebPages.dll
- System.Web.WebPages.Razor.dll
- WebActivatorEx.dll
- WebGrease.dll
- WebMatrix.Data.dll
- WebMatrix.WebData.dll
Kiedy wdrożyć do na czystej maszynie pojawia się następujący komunikat o błędzie:
Nie można znaleźć żądanego dostawcy danych .Net Framework. To może nie być zainstalowane.
Na moim komputerze dev działa dobrze. (Mam zainstalowany sql ce)
Każda wskazówka co robię źle?
Upewnij się, że wszystkie wymagane pliki binarne są wdrożone w folderze bin – ErikEJ
Wyjaśniłem to. Czy wiesz, jeśli biblioteki sqlce powinny być umieszczone w folderze bin -> x86 – oskarkvamme
Tak, biblioteki DLL x86 w folderze bin/x86 i pliki DLL x64 w folderze bin/AMD64. Potrzebujesz również sekcji dbProviders, zobacz mój post na blogu tutaj: http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html – ErikEJ