Я столкнулся с проблемой уже 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
на каждом клиентском компьютере и указать инструменту для его использования?