Как я могу совместно использовать конфигурацию приложения в приложении .NET?

В общих настройках значения хранятся в паре «Значение ключа», поэтому, если вы просто сохраните отредактированное значение с соответствующим ключом, предыдущие значения будут переопределены, так как вы уже получаете массив заметок, вы можете сделать одну вещь, сохранить список массивов в новом ArrayList и обновите отредактированное значение этого индекса, из которого вы получаете Notes, конвертируйте новый arrayList с помощью Gson и сохраните его в общих настройках.

8
задан Dana 30 September 2008 в 21:24
поделиться

5 ответов

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

Для использования различных версий конфигурационного файла для различных сред создайте конфигурацию сборки для каждой из различных сред и файла конфигурации, названного в честь среды, например:

производство production.app.config тестирует test.app.config

Можно затем использовать пред событие сборки для копирования корректной конфигурации по значению по умолчанию app.config в проекте. Это будет затем скопировано в Ваш выходной каталог как нормальное.

Пред событие сборки выглядел бы подобным вышеупомянутому, просто использовать $ (Конфигурация) для получения соответствующего файла для среды, которую Вы хотите.

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

6
ответ дан 5 December 2019 в 15:28
поделиться

Вы могли использовать событие Постсборки (Свойства-> События Сборки) на Ваших "дочерних" проектах скопировать файл конфигурации от основного проекта до других, как это:

copy /Y c:\path\to\master\project\app.config $(TargetPath).config
exit 0

("Выход 0" как последняя строка предотвращает ошибку сборки).

Чтобы иметь отдельные файлы конфигурации для различных целей сборки ("ВЫПУСК", "ОТЛАДКА", и т.д.), можно отредактировать .csproj файл (или .vbproj) в NOTEPAD.EXE для добавления тега AppConfig для каждой из целевых групп, как это:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <AppConfig>debug.app.config</AppConfig>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Devel\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <AppConfig>release.app.config</AppConfig>
  </PropertyGroup>

Заметьте новое <AppConfig> теги, существующие в каждой группе.

2
ответ дан 5 December 2019 в 15:28
поделиться

Вместо добавления <add> элементы к Вашему <appSettings> раздел Вашего файла конфигурации, можно добавить a file= припишите <appSettings> элемент, чтобы сказать этому загружать те данные из другого файла. Вы могли затем сохранить свои общие настройки в том общем файле.

См. appSettings Элемент (Общая Схема Настроек) в MSDN Library.

2
ответ дан 5 December 2019 в 15:28
поделиться

Можно также поместить параметры конфигурации в machine.config для совместного использования их среди нескольких приложений. Это делает развертывание более проблематичным все же.

0
ответ дан 5 December 2019 в 15:28
поделиться

Можно использовать символические ссылки NTFS для совместного использования файла .config .NET. Я видел, как это успешно используется в решении, состоящем из приложения ASP.NET, консольных приложений и т. Д.

1
ответ дан 5 December 2019 в 15:28
поделиться
Другие вопросы по тегам:

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