Я написал небольшое приложение, чтобы узнать больше о SQL и поэкспериментировать с Entity Framework. При первом выполнении мое приложение создает базу данных локально, а после этого открывает существующую базу данных. Пока все хорошо - он работает довольно хорошо на моем ноутбуке, на котором установлен SQL Server 2017.
Я попытался скопировать сборки на настольную машину, и это также сработало, как ожидалось, хотя SQL Server не был установлен.
Но когда я попытался скопировать сборки на другой ноутбук, приложение не запустилось. Исключение, которое я увидел, было:
При установке соединения с SQL Server произошла ошибка, связанная с сетью или указанная для экземпляра c. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Сервер настроен для разрешения удаленных подключений. (поставщик: SQL Сетевые интерфейсы, ошибка: 52 - Невозможно найти локальную установку базы данных времени выполнения. Убедитесь, что SQL Сервер Express правильно установлен и что включена функция времени выполнения локальной базы данных.)
Все машины Windows 10. (Значительно ли, что на настольном компьютере установлена Visual Studio 2019?)
Кажется, я не могу найти здесь сообщение, в котором говорится о моей проблеме. (Я, вероятно, плохо формулирую свой запрос ...)
В любом случае, я не хочу, чтобы другие пользователи требовали установки SQL Сервера (Express или иным образом). Что мне нужно включить в мою установку?
Можно ли сделать это более или менее автоматически с помощью развертывания ClickOnce (также называемого мастером публикации)? Или мне нужно создать .msi с кодом Wix?
Является ли SQLite лучшим вариантом для этого? Пользователи моего приложения не будут делиться базами данных; у каждого будет свой.
Я видел упоминание SQL Server Compact Edition в этом посте: ASP. NET MVC - Переключение с SQL Сервера Express в Compact Edition - проблема с подключением , но когда я попытался выполнить это, казалось, что это больше не доступно от Microsoft. И я считаю, что я уже использую SQL Сервер Express (похоже, это подтверждается сообщением об ошибке выше) ...
В настоящее время я решил эту проблему, используя Развертывание ClickOnce. В ближайшей перспективе я хотел бы изменить установку, чтобы включить зависимости (. NET & SQL runtimes) в пакет установки, а не загружать их во время установки.
Но мне интересно если SQLite будет лучшим долгосрочным решением ... Одна вещь, которую я оценил в SQLServer, заключается в том, что я могу использовать SQLServer Management Studio для доступа к базе данных отдельно от приложения, чтобы я мог проверить, что приложение сделало. Я также считаю, что это хорошо для пользователей, поскольку у них всегда будет второй вариант получения своих данных, если с приложением что-то пойдет не так.
Предоставляет ли SQLite какой-либо инструмент, аналогичный SQLServer Management Studio, для доступа база данных?