0

セットアップは次のとおりです。

私が開発した共通のライブラリがあります。これは、すべての開発者が新しいアプリケーションで使用したり、古いアプリケーションに些細な変更を加えたりする場合に使用されます。変更を行う場合、API が壊れていない場合はマイナー バージョン番号 (2.0 から 2.1) を上げますが、API が壊れている場合はメジャー バージョン番号 (2.1 から 3.0) を上げます。すべての新しいバージョン用に構築されたインストーラー パッケージがあり、サーバーに展開され、開発者が必要に応じてインストールできるようになります。インストーラーはアセンブリをサーバー上の GAC に配置し、machine.config を変更して構成情報を含めます。

最新バージョン (4.0) では、System.Configuration 名前空間 (カスタム構成セクションと構成セクション グループ) がかなり頻繁に使用されますが、思いもよらなかった問題があり、解決方法がよくわかりません: バージョンをアップグレードするとき、構成セクションとバージョンの衝突があります。

たとえば、machine.config ファイルでは、config セクションにアプリケーション名を指定するための情報を入れます。次のようになります。

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

バージョン 4.1 になったので、アプリケーションがバージョン 4.1 dll を使用しており、マシン構成がバージョン 4.0 dll をロードするように指示しているため、このセクション定義は壊れています。

この問題に対処する最善の方法は何ですか? 重要な問題を修正し、発行元ポリシー ファイルを使用して古いバージョンを新しいマイナー バージョンにリダイレクトする可能性があることを覚えておく必要があります。重大な問題の修正をインプレースで行う)

考え?意見?アドバイス?

4

1 に答える 1

0

さて、構成と同じ領域で私が考えることができる最良のことは、カスタムセクションを使用することです。それはあなたの構造を少し変えるでしょう、しかしそうすればあなたはミックスのようにあなた自身の属性を持つことができ、LatestVersion=trueいくつかの混乱を取り除くことができます。

MSDN-カスタム構成

コードプロジェクト-カスタム構成

于 2009-08-26T16:32:49.430 に答える