InputMan のバージョン管理ポリシーとアセンブリの関係について説明します。
.NET Framework には、厳密なアセンブリ識別機構が盛り込まれており、Visual Studio で作成した実行ファイルやアセンブリは、それらが依存するアセンブリを名前とバージョンおよびその他の情報を使って判別します。
この仕組みは、DLL Hell を解消するためのもので、間違ったバージョンのアセンブリを参照することによる誤動作を避け、本来のバージョンのアセンブリを確実に参照することを目的としています。この機構により、Visual Studio で作成した実行ファイルやアセンブリは、それらが依存するアセンブリと同名のアセンブリが存在していても、アセンブリバージョンが一致しなければ動作しません。
InputManのアセンブリでは、メンバの変更や機能拡張により互換性が保たれないと判断した場合、アセンブリバージョンとファイルバージョンの両方を変更します。この場合、修正版適用後にプロジェクトをリビルドする必要があります。
アセンブリのメンバに変更がない場合や十分な互換性が保たれる場合は、ファイルバージョンだけを変更します。この場合、既存のプロジェクトのソースコードを変更する必要はありません。
なお、互換性が保たれない場合で、大幅な機能追加などが含まれる場合には、製品の識別のために名前空間やアセンブリ名を変更する場合もあります。
変更の程度 | アセンブリバージョン | ファイルバージョン | ソースの変更 | 再ビルド |
---|---|---|---|---|
互換性が保たれない変更 | 更新される | 更新される | 必要 | 必要 |
互換性が保たれる変更 | 更新されない | 更新される | 不要 | 必要 |
プロジェクトで使用しているアセンブリのアセンブリバージョンとファイルバージョンは以下の手順で確認できます。
依存関係にあるアセンブリを正しく動作させるには、それらのアセンブリバージョンが互いに適合していることが必要です。たとえば、GrapeCity.Win.Editors.v110.dll と GrapeCity.Win.Editors.Design.v110.dll は、互いに関連しています。そのため、これらのアセンブリバージョンとファイルバージョンは揃える必要があります。
更新日 | ファイル名 | アセンブリ ver. | ファイル ver. |
---|---|---|---|
2023年8月23日 | GrapeCity.Framework.InputMan.v34.dll GrapeCity.Framework.InputMan.Net.v34.dll |
3.4.4802.2017 | 3.4.4802.2017 |
GrapeCity.Win.Editors.Design.v110.dll GrapeCity.Win.Editors.v110.dll GrapeCity.Win.Input.Interop.v110.dll GrapeCity.Win.Editors.Net.v110.dll |
11.0.4802.2017 | 11.0.4802.2017 | |
2022年12月7日 | GrapeCity.Framework.InputMan.v34.dll GrapeCity.Framework.InputMan.Net.v34.dll |
3.4.4801.2017 | 3.4.4801.2017 |
GrapeCity.Win.Editors.Design.v110.dll GrapeCity.Win.Editors.v110.dll GrapeCity.Win.Input.Interop.v110.dll GrapeCity.Win.Editors.Net.v110.dll |
11.0.4801.2017 | 11.0.4801.2017 | |
2022年3月30日 | GrapeCity.Framework.InputMan.v34.dll GrapeCity.Framework.InputMan.Net.v34.dll |
3.4.4800.2017 | 3.4.4800.2017 |
GrapeCity.Win.Editors.Design.v110.dll GrapeCity.Win.Editors.v110.dll GrapeCity.Win.Input.Interop.v110.dll GrapeCity.Win.Editors.Net.v110.dll |
11.0.4800.2017 | 11.0.4800.2017 |
通常は、アセンブリのバージョンを意識する必要はありませんが、作成したアプリケーションが配布先の環境で動作しない場合や、意図的にアセンブリを入れ替える場合は、プロジェクトが参照しているアセンブリのバージョンを確認してください。 |