Используйте свойство домена приложения, отличное от DataDirectory, в строке подключения - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть 2 разные базы данных SQL Compact для моего приложения.Мне нужно, чтобы один был в% appdata% и один в% programdata%.Вот строки подключения из моего app.config:

<connectionStrings>
    <add name="SqlCEConnString" connectionString="Data Source=|DataDirectory|\GTP_DB.sdf; Encrypt Database=True; Password=examplePwd; Persist Security Info=false" providerName="System.Data.SqlServerCe.4.0" />
    <add name="LicConnString" connectionString="Data Source=|CommonDir|\GTP_Profile_DB.sdf; Encrypt Database=True; Password=examplePwd; Persist Security Info=false" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

Я успешно могу установить DataDirectory для использования в первой строке подключения с помощью

System.AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "myFolder"));

Я также пытаюсь установитьсвойство CommonDir для папки в% programdata% для использования в моей второй строке подключения:

System.AppDomain.CurrentDomain.SetData("CommonDir", Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "myFolder"));

Однако, когда мой код впервые пытается получить доступ к базе данных, которая использует | CommonDir |в строке подключения я получаю System.ArgumentException, говорящее «Недопустимые символы в пути»

Я проверил, что путь, который я использую, является допустимым, потому что, если я использую | DataDirectory |в обеих строках подключения мое приложение может без проблем обращаться к обеим базам данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...