У меня есть 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 |в обеих строках подключения мое приложение может без проблем обращаться к обеим базам данных.