Я пытаюсь развернуть базовое приложение MVC 4, которое использует Entity Framework 6 (Code First) и SQL Compact 4.0 на чистой установке Windows 7 с установленным iis (mvc 4 и sql compact 4.0 не установлены).ASP.NET MVC 4 + Entity Framework 6 + SQL Compact Edition 4.0 развертывание без установки
Я получил следующие NuGet пакеты, установленные на проекте дб:
- EntityFramework (версия 6.0.0-альфа2)
- EntityFramework.SqlServerCompact (версия 6.0.0-альфа2)
- Microsoft. AspNet.Providers (версия 1.2)
- Microsoft.AspNet.Providers.Core (версия 1.2)
- Microsoft.SqlServer.Compact (версия 4.0.8876.1)
В web.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>
папку Bin (SQL CE файлов в amd64 и 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. длл
- 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 ,длл
- 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
Когда я развернуть на на чистой машине появляется следующее сообщение об ошибке:
Не удается найти требуемый поставщик данных .Net Framework. Он не может быть установлен.
На моей машине dev она работает нормально. (Я установил sql ce)
Любые подсказки, что я делаю неправильно?
Убедитесь, что все необходимые двоичные файлы развернуты в папку bin – ErikEJ
. Я сделал это. Знаете ли вы, что dll sqlce следует поместить в папку bin -> x86 – oskarkvamme
Да, x86 DLL в папке bin/x86 и x64 dll в папке bin/AMD64. Вам также нужен раздел dbProviders, см. Мой блог здесь: http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html – ErikEJ