Два ответа - но не совсем полные решения:
1) Я скопировал файл app.config в каждое приложение, которое использует базу данных.Лучший способ сделать это - скопировать DAL app.config в качестве ссылки в других проектах?
Вы можете перенести строки подключения в их собственную конфигурацию, что-то вроде:
<connectionStrings configSource="connectionStrings.config" />
и затем иметь эти строки подключения в этом новом файле:
<connectionStrings>
<add name="DataAccessLayer.Properties.Settings.ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=c:\users\something\something\MyDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Таким образом, вы можете иметь собственные app.config's, но иметь общую общность.
2) Iне хочу полного пути, когда дело доходит до развертывания, которое не будет работать.Относительные пути в app.config не работают.
К сожалению, единственное, что вы можете здесь сделать, это использовать заполнитель |DataDirectory|
, который является заполнителем для папки App_Data
в приложении ASP.NET.
<add name="DataAccessLayer.Properties.Settings.ConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|MyDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
providerName="System.Data.SqlClient" />
Единственным другим решением будет использование сервера и подключение к серверу, а не наличие файлов для динамического монтирования и подключения.