Настройки конфигурации, будь то настройки пользователя или приложения, имеют значения по умолчанию, жестко заданные в сборке по умолчанию. Их можно переопределить, добавив app.config или изменив пользовательские настройки во время выполнения и сохранив их в файле конфигурации пользователя.
После создания настроек проекта (в свойствах проекта и перейдите на вкладку «Настройки») создается класс Settings
со статическими свойствами, который будет иметь заданное вами значение по умолчанию.
Они доступны по всей вашей сборке так:
Assert.AreEqual(Properties.Settings.MySetting, "MyDefaultValue");
Эти значения по умолчанию могут быть переопределены через app.config:
<applicationSettings>
<MyProject.Properties.Settings>
<setting name="MySetting" serializeAs="String">
<value>MyDefaultValue</value>
</setting>
</MyProject.Properties.Settings>
</applicationSettings>
Чтобы ответить на ваш вопрос: вы можете не включать app.config из развертывания вашего приложения, значения по умолчанию, которые вы указали при настройке параметров, жестко заданы.
Edit:
Только что заметил, что вы действительно хотите прочитать весь app.config из вашей сборки.
Возможный подход может быть следующим:
// 1. Create a temporary file
string fileName = Path.GetTempFileName();
// 2. Write the contents of your app.config to that file
File.WriteAllText(fileName, Properties.Settings.Default.DefaultConfiguration);
// 3. Set the default configuration file for this application to that file
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", fileName);
// 4. Refresh the sections you wish to reload
ConfigurationManager.RefreshSection("AppSettings");
ConfigurationManager.RefreshSection("connectionStrings");
// ...