すべてのデータベースコードを別のライブラリに抽象化してから、そのライブラリをすべてのコードで使用しようとしています。すべてのデータベース接続は、appSettingsからの接続文字列を使用して、VS2005でデータセットをドラッグアンドドロップして作成した型付きTableAdaptersを使用して行われます。
私が解決できなかった問題は、.NetがライブラリappSettingsをそれを使用している他のプロジェクトに伝播しないことです。
つまり、MyProgram.Clientなどの他のプロジェクトで使用されるデータベースレイヤーライブラリMyProgram.DbLayerがあります。.Clientにすべてのデータセットがある場合、connectionStringはMyProgram.Client.exe.configにあります。ビルド後に変更できます。MyProgram.DbLayerに移動したとき、バイナリをビルドした後、その設定を使用できません。
編集:これは、ApplicationSettingsのより一般的な問題のようです。
私が気付いたのは、ライブラリでのみ使用される設定を手動で追加すると、正しく読み取られるということでした。今必要なのは、設定が.configファイルにも自動的に含まれるようにすることだけです。