コンポーネントのライセンス処理 |
このトピックでは、コンポーネントのライセンスの仕組みおよびアプリケーションへのライセンスの組み込み方法について説明します。
.NET Framework には、知的所有権の保護を行うための共通のライセンス処理が用意されています。InputMan for WPF をはじめ、多くのサードパーティ製の .NET コンポーネントがこのライセンス処理を採用しており、その使用方法や仕組みは共通のものとなっています。
通常、ライセンスを付与されたコンポーネントに必要な処理は Visual Studio が自動的に行ってくれるため、ライセンスの仕組みを理解する必要はほとんどありません。しかしながら、後述の「ライセンス情報ファイル」(*.licx)がプロジェクト内に必要であるということだけは覚えておく必要があります。
注意 |
---|
アプリケーションにライセンスが正しく組み込まれていない場合、下記のようなエラーが発生します。
|
ライセンス情報ファイルは、どのコンポーネントがライセンス付与されているかを識別するための情報が記述されています。通常は、上記ライセンス処理を採用したコンポーネントをフォームに配置することで、Visual Studio によって自動的にライセンス情報ファイルが作成され、プロジェクトに追加されます。
ライセンス情報ファイルには、それぞれのコンポーネントについて、以下の形式で記述されています。
<名前空間>.<クラス名>, <アセンブリ名>, <アセンブリバージョン>, <カルチャ>, <パブリックキートークン>
InputMan for WPF の各コンポーネントについてのライセンス情報は、以下のように記述されます。
GrapeCity.Windows.InputMan.GcComboBox, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcDateTime, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcDropDownCalculator, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcDropDownCalendar, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcListBox, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcMask, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcNumber, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcTextBox, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a GrapeCity.Windows.InputMan.GcValidationIndicator, GrapeCity.WPF.InputMan, Version=2.0.4003.2012, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a
メモ |
---|
IME 管理コンポーネント(GcImeManager)については、ライセンス情報の記述は必要ありません。 |
アセンブリバージョンやパブリックキートークンは、製品のバージョンアップやサービスパック等で変更される場合があります。そのため、最新版へアップグレードした場合は、ライセンス情報ファイル内のこれらの記述を手動で変更する必要があります。
なお、「Version=~」以降の記述は、以下のように省略することができます。
GrapeCity.Windows.InputMan.GcComboBox, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcDateTime, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcDropDownCalculator, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcDropDownCalendar, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcListBox, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcMask, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcNumber, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcTextBox, GrapeCity.WPF.InputMan GrapeCity.Windows.InputMan.GcValidationIndicator, GrapeCity.WPF.InputMan
これにより、ライセンス情報はアセンブリバージョンやパブリックキートークンに依存しなくなるので、アセンブリを最新版に置き換えた場合でもライセンス情報を書き換える必要が無くなります。
いくつかのケースにおいては、ライセンス情報ファイルが作成されなかったり、適切なライセンス情報が書き込まれないため、手動でライセンス情報ファイルを作成し、プロジェクトへ追加する必要があります。
以下に、手動でライセンス情報を作成する必要がある代表的なケースを挙げ、それぞれの場合の対処法について説明します。
ライセンス情報ファイルには、プロジェクト内で使用しているコンポーネントのうち、.NET Framework のライセンスの仕組みを利用するすべてのコンポーネントに対するライセンス情報が必要になります。いずれかのコンポーネントに対するライセンス情報が不足している場合、実行時に「XXXX(コンポーネント名)のライセンスが見つかりませんでした。」というエラーが発生します。
ライセンス情報ファイルに、プロジェクト内で使用していないコンポーネントの情報が記述されている場合、ビルド時に「"LC.exe" はコード -1 を伴って終了しました。」エラーが発生し、ビルドが中断される場合があります。この場合、ライセンス情報ファイルから不要なコンポーネントのライセンス情報を削除してください。