2009-05-14 8 views
0

他のアプリケーションで使用されるいくつかのUIコントロールを含む新しいライブラリバージョンに取り組んでいます。これらのコントロールには、古いアプリケーションが知らない新しい機能があります。新しい機能はデフォルトで無効になりますが、有効にしたい特定のアプリがあります。アプリは同じマシンに存在する可能性があります。古いアプリケーションでの新しいライブラリ機能の処理

これを実装することをどのようにお勧めしますか?

更新: 私が作ってみた最適なソリューションをProcess.GetCurrentProcess()を使用してオーバーライド値を指定するレジストリキーを探すためにproc.MainModule.FileVersionInfo.InternalNameのようなものを使用することです。また、新しい機能について知るには古すぎることを確認するために、バージョン番号を調べることもあります。この方法に問題はありますか?

更新: 追加された機能は、コントロール内にカプセル化されている、それは彼らが、いくつかの文脈ではなく、他に意味をなすだけのことです。

+0

古いアプリを更新できません。あなたが使いたいコントロールの新機能を使用するには? –

+0

古いアプリケーションは最終的に更新されますが、アップグレードを強制することなく適切な場所でこれらの機能を有効にしたいのです – dmo

答えて

0

私はあなたができるとは思わない。インターフェイスを古いアプリケーションに変更することはできません。新しいデータを受け取ったり返すことはできません。したがって、新しいコントロールは、古いコントロールと同じように古いアプリケーションに対して動作する必要があります。これで、コントロール内に完全にカプセル化された新しいコントロールの動作(固定や最小化など)がある場合、これらの機能は古いアプリケーションで動作する可能性があります。古いアプリケーションが新しいコントロールを使用するようにするには、厳密な名前が付けられていて、GACではPublisher Policiesを使用することを前提としています。

+0

機能はカプセル化されています。私は明確にするために質問を更新しました。 – dmo

+0

また、新しいバージョンに修正が加えられているため、Publisherポリシーを使用して古いバージョンを強制的に読み込みたくはありません。 – dmo

関連する問題