Short
Я хочу установить определенные значения applicationSetting на конкретные значения только для моей машины разработки в файле конфигурации, который не может быть зарегистрирован. Для этого я подумал об использовании атрибута configSource с файлом user.config. Однако этот атрибут вызывает исключение, когда файл отсутствует.
Расширенная
У меня есть библиотека со следующим файлом app.config:
<applicationSettings>
<A.NameSpace.Settings>
<setting name="ASettingName" serializeAs="String">
<value>aSettingValue</value>
</setting>
</A.NameSpace.Settings>
</applicationSettings>
Другая библиотека собирается использовать эту библиотеку и имеет две опции, и одна из них описана чуть дальше
- Не заполнять узел A.NameSpace.Settings, поэтому используется значение по умолчанию
aSettingValue
- Заполните узел A.NameSpace.Settings, чтобы использовать только что настроенное значение
Это удобно, потому что наш скрипт сборки, который готовит настройки, теперь может заменять параметры, зависящие от среды (например, имена серверов, порты и т. Д.)
Теперь третий вариант - иметь app.config, например так:
<applicationSettings>
<A.NameSpace.Settings configSource="user.config" />
</applicationSettings>
и определите то же значение в файле user.config
, который не зарегистрирован. Это потрясающе.
За исключением того, что в среде не-dev этот файл user.config не должен отображаться, и будет сгенерировано исключение, если файл не найден.
Как я могу определить значения конфигурации только для моей машины?