エントリポイントのexeアセンブリの設定ファイルに変更を加える必要があります。クラスライブラリアセンブリ(dll)設定ファイルは使用されません。 Visual Studioで作成されているので、必要に応じて設定をexe設定ファイルに簡単にコピーできます。
ベローは、クラスライブラリClassLibrary1
の設定とexeアセンブリの設定MainAssembly
の両方を持つexeアセンブリの設定ファイルの例です。両方の接続文字列が1つのconnectionStrings
設定に含まれていることがわかります。ただし、接続文字列の横に他の設定をする必要がある場合は、余分なセクションを追加する必要があります。
既にこの手法を使用している場合は、これは正しい方法です。この手法は柔軟性があります。たとえば、1つのボックスに同じ接続文字列を持つ複数のプロジェクトがある場合は、machine.configファイルで接続文字列を指定できます。また、必要に応じていくつかのプロジェクトの設定を上書きすることもできます。
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<!--This section declaratrion pasted here from dll conifg file -->
<section name="ClassLibrary1.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
<!--This section declaratrion was here in the first place -->
<section name="MainAssembly.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<!--This connection string was here in the first place -->
<add name="MainAssembly.Properties.Settings.MainAssemblyConnectionString"
connectionString="MainConnectionStringValue" />
<!--This connection string pasted here from dll config file -->
<add name="ClassLibrary1.Properties.Settings.LibraryConnectionString"
connectionString="LibraryConnectionStringValue"
providerName="" />
</connectionStrings>
<applicationSettings>
<!--This settings section pasted here from dll config file -->
<ClassLibrary1.Properties.Settings>
<setting name="LibrarySetting"
serializeAs="String">
<value>LibrarySettingValue</value>
</setting>
</ClassLibrary1.Properties.Settings>
<!--This strings section was here in the first place -->
<MainAssembly.Properties.Settings>
<setting name="MainAssemblySetting"
serializeAs="String">
<value>MainSettingValue</value>
</setting>
</MainAssembly.Properties.Settings>
</applicationSettings>
</configuration>