Создайте экземпляр SQL Server Express MSSQLLocalDB на клиентском компьютере. - PullRequest
0 голосов
/ 26 декабря 2018

Я столкнулся с проблемой уже 2 недели, поэтому здесь я прошу вашей помощи.

Я занимаюсь разработкой инструмента на C # (Visual Studio 2017, SQL Server Express, окно WPF), который должен заполнить этот инструментШаблон слов автоматически, и с ним нет проблем.Дело в том, что, поскольку инструмент должен работать с локальной базой данных (SQL Server Express), я должен заставить его создать экземпляр MSSQLLocalDB на каждом клиенте, которому необходимо использовать инструмент.

При запускеон работает в режиме отладки на моем компьютере и работает отлично, но при попытке развернуть его на клиентском компьютере выдается ошибка:

Доступ запрещен для пользователя 'username'

Я добавил базу данных .mdf в папку ресурсов, изменил BuildAction на Content и создаю следующий фрагмент:

string DBpath = Path.GetTempPath() + "LocalDatabaseCopy.mdf"; 

if(!File.Exists(DatabasePath))
{
    File.WriteAllBytes(DBpath, Propreties.Resources.LocalDatabse);
}

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

Я вручную проверил, существует ли копия во временной папке, и это делает, но инструментне буду его использовать, поэтому в строке подключения я установил источник данных (localdb)\MSSQLLocalDB и добавил следующую строку

builder.AttachDatabase = LocalDatabaseCopy.mdf

Теперь он использует локальную копию, но я получаю сообщение об ошибке, сообщающее, что нетэкземпляр MSSQLLocalDB на клиентском компьютере, даже когда я упаковываю его в настройке с SqlServerLocalDB в качестве требования.Мне действительно нужно, чтобы это работало на любом клиенте, может кто-нибудь объяснить мне, как создать локальный экземпляр MSSQLLocalDB на каждом клиентском компьютере и указать инструменту для его использования?

...