SQL Compact 4.0 не может открыть / прочитать файл sdf - PullRequest
23 голосов
/ 01 ноября 2010

Я установил SQL Compact 4.0 CTP 2 через WPI и использовал NUPack для добавления SQLCE.EntityFramework в свой проект.Он компилируется и работает отлично, но я не могу открыть файл SDF в обозревателе серверов Visual Studio 2010.

При попытке всегда получаю следующее сообщение:


Microsoft Visual Studio

Это недопустимый файл базы данных SQL Server Compact, или эта версия файла не поддерживается текущим ядром SQL Server Compact.

OK

Я уже пытался удалить ипереустановите все.

Его также нельзя открыть в SQL Server 2008 R2 Management Studio.

Пожалуйста, помогите !!

Ответы [ 3 ]

12 голосов
/ 18 августа 2012

Установка (Инструменты Visual Studio 2010 с пакетом обновления 1 (SP1) для SQL Server Compact 4.0) полностью исправила эту проблему для меня: http://go.microsoft.com/fwlink/?LinkId=212219

Подсказки для ErikEJ из этого потока: http://forums.asp.net/t/1811963.aspx/1

2 голосов
/ 08 января 2013

Я столкнулся с той же проблемой, пытаясь следовать учебникам по MVC3 (MvcMovie), предоставленным asp.net, когда мне сказали дважды щелкнуть файл «Movies.sdf», чтобы проверить таблицы или другую информацию. *

На самом деле решение чуть ниже запроса:

Примечание. Если при двойном щелчке на Movies.sdf появляется ошибка, убедитесь, что вы установили SQL Server Compact 4.0 (время выполнения + поддержка инструментов). (Ссылки на программное обеспечение см. В списке обязательных компонентов в части 1 Эта серия учебных пособий.) Если вы установите версию сейчас, вам придется закройте и снова откройте Visual Web Developer.

После установки Sql Server Compact 4.0 (среда выполнения + поддержка инструментов) проблема решена.

0 голосов
/ 17 августа 2012

Этот вопрос немного старый. Но я думаю, что ответ заключается в том, что VS2010 SP1 имеет только SQLCE 3.5 и SQLCE 3.5 x64, а не SQL Compact 4.0. Продукты SQL поставляются вместе со Studio. В 2012 году до сих пор нет SQLCE 4.0, включенного в дистрибутив Studio 2010 (я использую Express edition).

Эта версия упаковки не является прямой причиной, а просто подсказкой, что другая версия потребует дополнительных усилий.

Исправление должно включать регистрацию «Провайдера данных» в .NET Framework, используемом Visual Studio. Посмотрите на "DbProviderFactories" внутри c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config. В этом разделе описывается, какие поставщики данных могут использовать .NET и Studio.

Если там есть непредвиденные записи, попробуйте восстановить фреймворк или зарегистрировать провайдеров вручную. Для этого потребуются некоторые инструменты регистрации низкого уровня. Скажем, для провайдеров asp.net есть aspnet_regsql.exe и т. Д. Но для самого SQLCE должно быть что-то подобное.

<system.data>
    <DbProviderFactories>
       <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
</system.data>

Разница между сломанной Studio и работающим приложением заключается в том, что оба используют один и тот же Framework, но имеют разных провайдеров в конфигурации. (Или приложение использует другую технику, чтобы выбрать DLL и открыть SDF)

Ответ: Начиная с SP1, официально можно использовать SQLCE4.0 в Studio 2010 SP1 (спасибо Натану Фишеру за ссылку http://support.microsoft.com/kb/983509)

...