J'ai un système comprenant 5 applications. Chaque application accède à une base de données via une bibliothèque DAL. Dans le DAL j'ai un app.config avec l'entrée suivante:en utilisant une base de données SQL dans plusieurs projets
<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>
Utilisation du chemin complet du attachDbFilename fonctionne très bien. Mais je ne suis pas content:
J'ai copié le fichier app.config dans chaque application qui utilise la base de données. Le meilleur moyen de le faire - copier le DAL app.config en tant que lien dans les autres projets?
Je ne veux pas un chemin complet, quand il s'agit de déploiement qui ne va pas travailler. Les chemins relatifs dans app.config ne semblent pas fonctionner. Idéalement, je voudrais être en mesure de tirer le DAL du contrôle de la source sur n'importe quel ordinateur et ne pas avoir à se soucier de changer la chaîne de connexion à chaque fois. Ceci: http://blogs.msdn.com/b/smartclientdata/archive/2005/08/26/456886.aspx parle de | DataDirectory | à des fins de déploiement mais cela ne fonctionne pas pour moi dans le débogage (sauf si je l'utilise mal, voir 3)
Cela pourrait être mieux comme une question distincte, mais il est lié à 2. - Y at-il un " bonne "façon d'organiser plusieurs projets pour le débogage? J'ai créé un répertoire bin et dans chaque paramètres du projet, je copie le dll/exe dans ce répertoire bin. J'ai également une copie de la base de données ici (je n'ai essayé aucun chemin dans le fichier app.config mais cela n'a pas fonctionné non plus, ni | DataDirectory |). Aussi incroyablement ennuyeux est que les chemins relatifs ne fonctionnent pas dans le paramètre Debug \ Working Directory non plus, il semble donc que c'est un endroit qui devrait changer à chaque fois que le code est extrait sur une nouvelle machine?
Excuses pour la guerre et la paix et merci d'avance pour vos idées.
thnx pour cela, les solutions connectionstrings sonne idéal – CSharpHolder