Общая библиотека и пространство имен System.Configuration - PullRequest
0 голосов
/ 26 августа 2009

Вот настройки:

У нас есть общая библиотека, которую я разработан, который используется всеми разработчики на любых новых приложениях или более чем тривиальные изменения в старом Приложения. Когда мы вносим изменения, мы до второстепенного номера версии (2,0 до 2.1) если API не сломан, но если мы сломаем API, то мы до номер версии (от 2.1 до 3.0). Есть пакет установки, созданный для каждого новая версия, и она развернута на серверы и сделаны доступными для разработчики для установки при необходимости. установщик помещает сборки в GAC на серверах и изменяет machine.config, чтобы включить некоторые информация о конфигурации.

В последней версии (4.0) довольно широко используется пространство имен System.Configuration (настраиваемые разделы конфигурации и группы разделов конфигурации), но есть проблема, о которой я не задумывался, и я не совсем уверен, как ее решить: при обновлении версий у нас возникают конфликты версий с разделами конфигурации.

Например, в файле machine.config он помещает в раздел конфигурации информацию для указания имени приложения. Это выглядит примерно так:

<section name="application" type="CommonLibrary.Configuration.ApplicationSection, 
CommonLibrary, Version=4.0.0.0, Culture=neutral, PublicKeyToken=sometokenhere" />

Так что теперь, когда у нас есть версия 4.1, это определение раздела не работает, потому что приложение использует dll версии 4.1, а конфигурация компьютера говорит ему загрузить dll версии 4.0.

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

Мысли? Мнения? Совет?

1 Ответ

0 голосов
/ 26 августа 2009

Что ж, самое лучшее, что я могу придумать в той же области, что и конфигурация, - это использовать пользовательские разделы. Это немного изменило бы вашу структуру, но таким образом вы могли бы иметь свой собственный атрибут, такой как LatestVersion=true, в миксе, избавив от некоторой путаницы.

MSDN - Пользовательские конфигурации

Код проекта - Пользовательские конфигурации

...