единственный app.config многопроектный c#

Необходимый : Как дескрипторы приложения в Ваших руках очень важны для чего-то как iPhone. Вы не можете сказать, как это будет чувствовать для использования при оштукатуривании прямо перед Вами в эмуляторе на большом экране.

, Если Вы не можете держать его, Вы не будете получать истинный пользовательский опыт.

45
задан ala 1 September 2009 в 11:22
поделиться

5 ответов

Общий файл конфигурации

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section 
            name="appSettings" 
            type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
            />
    </configSections>
    <appSettings>
        <add key="key1" value="value1"/>
    </appSettings>
</configuration>

Для доступа к сопоставленному файлу конфигурации

ConfigurationFileMap fileMap = new ConfigurationFileMap(file); //Path to your config file
Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
string value = configuration.AppSettings.Settings["key1"].Value;
19
ответ дан 26 November 2019 в 21:06
поделиться

Допустим, у вас есть такая структура папок:

  • Решение
    • Project1
    • Project2
    • Project3

Сделайте следующее:

  1. Создайте файл App.config в папке уровня решения. Вы не найдете возможности добавить файл App.config из шаблонов, поэтому просто создайте новый пустой текстовый файл с именем App.config и вставьте содержимое обычного файла App.config.
  2. Для каждый проект в обозревателе решений:

    1. Щелкните правой кнопкой мыши и выберите Добавить > Существующий элемент
    2. Найдите файл
    3. Выберите Добавить как ссылку в раскрывающемся списке рядом с кнопкой Добавить .

      Add as link

Отредактировано для добавления:

Вы правильно заявляете, что вышеуказанный метод предоставил общий доступ к файлу только до времени сборки. Чтобы использовать совместно используемый файл во время выполнения, см. ответы на этот вопрос .

56
ответ дан 26 November 2019 в 21:06
поделиться

Я нашел кнопку и открыл app.config как ссылка, однако это вызвано при сборке снова создать отдельный конфигурационный файл для каждого проекта, и поэтому при развертывании 3 проект, у меня будет 3 файла конфигурации. Что я хотел сделать, так это сохранить один файл для всех проектов в определенное решение. Могу ли я это сделать?

Да, вы можете сделать это, но должны сделать это?

Основное предположение в приложении .NET состоит в том, что одно приложение = один файл конфигурации. Изначально и с помощью простого метода вы не можете обмениваться файлами конфигурации между приложениями.

Если вы создаете свои собственные настраиваемые разделы конфигурации, вы можете «передать» их во внешние файлы, которые могут быть совместно использованы. Представьте, что вы создаете свой собственный настраиваемый раздел конфигурации под названием «MyConfiguration», тогда ваш app.config будет выглядеть примерно так:

<configuration>
  <configSections>
    <section name="MyConfiguration" 
             type="MyConfigurationSection, MyConfigurationAssembly" />
  </configSections>

  <MyConfiguration>
    <nestedElement>
      <dateTimeValue>10/16/2006</dateTimeValue>
      <integerValue>1</integerValue>
    </nestedElement>
  </MyConfiguration>
</configuration>

У вас может быть раздел «MyConfiguration» в отдельном файле и ссылаться на него из конфигурации вашего приложения:

<configuration>
  <configSections>
    <section name="MyConfiguration" 
             type="MyConfigurationSection, MyConfigurationAssembly" />
  </configSections>

  <MyConfiguration configSource="MyConfiguration.config" />
</configuration>

и ваш "MyConfiguration.config" будет содержать:

  <MyConfiguration> 
    <nestedElement>
      <dateTimeValue>10/16/2006</dateTimeValue>
      <integerValue>1</integerValue>
    </nestedElement>
  </MyConfiguration>

Сделав это, вы могли бы "экстернализовать"

7
ответ дан 26 November 2019 в 21:06
поделиться

Вот "Добавить существующие элемент "диалогового окна в VS 2008:

Add existing item dialog

Щелкните маленький раскрывающийся индикатор на кнопке" Добавить "и выберите" Добавить как ссылку "в контекстном меню.

Marc

8
ответ дан 26 November 2019 в 21:06
поделиться

Один из вариантов разработки - избежать доступа к app.config непосредственно из вашего класса библиотечные проекты в целом, что позволяет избежать дополнительной внешней зависимости.

Скорее, только ваш исполняемый проект знает о файле конфигурации, и он может явно передать соответствующую информацию конфигурации в библиотеки, когда он создает из них объекты или инициализирует их.

6
ответ дан 26 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: