Сбой сборки LightSwitch с использованием SQL Server 2014 LocalDB и Visual Studio 2013

У меня установлен SQL Server 2014, и я хочу использовать localdb\v12.0 в Visual Studio. Я нашел этот пост и понял, как успешно подключиться к localdb с помощью обозревателя объектов SQL Server. Теперь я создал проект LightSwitch в Visual Studio 2013, и при его сборке возникает исключение:

Произошла ошибка при установлении соединения с экземпляром SQL Server '(LocalDB)\v11.0'.

Кажется, он ищет SQL Server 2012 для создания базы данных разработки в Bin\Data, а у меня нет SQL Server 2012, поэтому в системе нет localdb\v11.0. Так

  1. Почему VS 2013 пытается использовать localdb\v11.0?

  2. Как заставить Visual Studio использовать localdb\v12.0 при сборке проекта?

Я попытался изменить строку подключения _IntrinsicData в web.config, но при повторном построении выдает то же исключение, пытаясь использовать localdb\v11.0, принадлежащий SQL Server 2012!


person Hossein Narimani Rad    schedule 16.11.2014    source источник


Ответы (1)


Хорошо, потратив много времени, я нашел, в чем была проблема! Вот причина и решение:

LightSwitch использует SQL Express LocalDB для хранения такой информации, как пользователь и роли при создании проекта (это называется базой данных разработки). С SQL Server 2012 проблем нет, но если установлен SQL Server 2014, что-то заставляет LightSwitch подключиться к (localdb)\v11.0 . LightSwitch делает в решении три проекта. Если проекты клиента и сервера построены успешно, проблема связана с третьим проектом. Выполните следующие действия:

  1. Щелкните правой кнопкой мыши третий проект в решении.
  2. Выберите Unload Project
  3. Снова щелкните по нему правой кнопкой мыши и выберите Edit <yourProjectName>.lsxtproj
  4. Найдите SqlExpressInstancename
  5. Вы обнаружите, что его значение равно (localDB)\v11.0 !
  6. Измените его на правильное имя экземпляра SQL Server LocalDB; для получения дополнительной информации проверьте примечания ниже

введите здесь описание изображения

Теперь решение успешно построено

--

Примечание 1. Чтобы узнать, какая версия SQL Server LocalDb установлена, откройте cmd и введите sqllocaldb.exe v.

Примечание 2. Чтобы узнать, какой экземпляр LocalDb был создан в системе, откройте cmd и введите информация sqllocaldb.exe.

Примечание 3. Экземпляр, который будет использоваться LightSwitch, должен быть запущен: откройте cmd и введите sqllocaldb.exe start


ОБНОВЛЕНИЕ: В поисках лучшего решения я нашел правильный способ решить эту проблему. Мне было тяжело выполнять эти 6 шагов каждый раз, когда я создаю новый проект LightSwitch. Итак, если вы хотите исправить это один раз, вы можете сделать это следующим образом:

  1. В Visual Studio перейдите в Инструменты-> Параметры
  2. В инструментах базы данных выберите соединения данных
  3. Установите желаемое имя экземпляра SQL Server

введите здесь описание изображения

Так что не нужно устанавливать его каждый раз, когда вы создаете проект LS.

person Hossein Narimani Rad    schedule 16.11.2014
comment
Возможные имена базы данных\экземпляра с VS2015 и LocalDB версии 12: (localdb)\MSSQLLocalDB и (localdb)\ProjectsV12. - person Gustav; 26.10.2015