サポート&サービス

Home > サポート&サービス > テクニカルサポート > ナレッジベース

テクニカルサポート

製品に関する技術的なサービスを提供しています。製品別の技術情報(ナレッジベース)および、対応環境情報をご覧いただけます。また、E-mailによるテクニカルサポートのお申し込みもこちらで受け付けています。

ComponentOne サブスクリプション製品をご購入された方

サブスクリプションにて、ComponentOne製品(ComponentOne Studio、Wijmo、Xuni)をご購入された方は、下記のComponentOne Studioサイトからユーザー登録をお願いいたします。

ComponentOne サブスクリプション製品のユーザー登録を行う

ナレッジベース

licenses.licxを使用したライセンスの組み込み(トライアル版やライセンスに関するエラーが出力された場合の対処方法)
文書番号 : 37066     文書種別 : Info
登録日 : 2014/03/07     最終更新日 : 2014/10/28
文書を印刷する
対象製品
.NET 製品共通
詳細
本文書では、弊社の.NET製品を使用して開発したアプリケーションに対し、licenses.licxを使用してライセンスを組み込む方法について、全般的な情報を解説します。


 メモ
  • アプリケーションに正しくライセンスが組み込まれていない場合、実行時にトライアル版のダイアログが出力されたり、ライセンスに関するダイアログが出力されたりします。本文書の内容をご確認ください。
 注意事項

以下の.NET製品はlicenses.licxを使用しないため、本文書の内容は該当しません。ライセンスの組み込み方法については、製品に付属の製品ヘルプをご覧ください。製品ヘルプは、スタートメニューなどから表示できます。
  • LEADTOOLS for .NET 14.0J
  • LEADTOOLS 15.0J/16.5J/17.5J/18.0J
  • Silverlight用コンポーネント製品


1. ライセンスを組み込むための条件
アプリケーションに.NET製品のライセンスを組み込むための条件は、以下の2つです。
  1. 開発環境に対する条件
    ビルドする環境に.NET製品の開発ライセンスが存在する(製品のインストールライセンス認証が適切に行われている)。
  2. プロジェクトに対する条件
    ビルドするプロジェクトの適切な位置にlicenses.licxファイルが存在し、適切な情報が記載されている。
上記の条件1.と2.を満たした状態で、Visual Studio上からプロジェクト(ソリューション)を「リビルド」すると、アプリケーションにライセンスが組み込まれます。

これ以降は、条件1.が満たされていることを前提として、主に条件2.について説明します。
 メモ
  • たとえば、新規プロジェクトのフォームにコンポーネントを貼り付けただけのアプリケーションでも、トライアル版やライセンスに関するダイアログが出力されてしまう場合は、条件1.が満たされていないと判断できます。この場合は、ライセンス認証手続きや製品のインストールをやり直すことで、開発環境を正常な状態にできる可能性があります。
 注意事項
  • サブスクリプション製品の「ComponentOne Studio」はライセンス認証の手順が異なります。本製品のライセンス認証手順については「購入後の手続きからインストール」ページの「ライセンス認証を行う」をご覧ください。
  • 「デバッグ実行」や「ビルド」では、アプリケーションにライセンスが組み込まれない場合があります。必ず「リビルド」を実行してください。

    もしくは、既存のbinフォルダやobjフォルダを削除したうえで、「リビルド」を実行してください。


2. licenses.licxファイルとは
  • licenses.licxは、.NET Framework標準のライセンス処理機能(LicenseProvider)で使用されるファイルです。ライセンス付きコンポーネントを使用した開発において、ビルドするアプリケーションにライセンスを組み込むために必要です。
  • licenses.licxはテキスト形式のファイルです。Visual Studio上でも編集が可能です。
  • licenses.licxをアプリケーションの運用環境に配布する必要はありません。


3. licenses.licxの自動作成
Visual Studio上で以下の操作を行うと、.NET Frameworkのライセンス処理機能により、自動的にlicenses.licxが作成され、そのコンポーネントの情報が記載されます。プロジェクト内にすでにlicenses.licxが存在する場合は、そのコンポーネントの情報が追記されます。
  • ツールボックスからフォームに、ライセンス付きコンポーネントを貼り付ける
  • ライセンス付きコンポーネントが配置されたフォームを、デザイン画面で開く
 注意事項
  • Visual Studioのツールボックスからコンポーネントを貼り付けるには、製品のインストール後に、手動でツールボックスへの登録を行う必要があります。登録の手順については、使用されている.NET製品の製品ヘルプをご覧ください。製品ヘルプは、スタートメニューなどから表示できます。
  • ライセンス付きコンポーネントのアセンブリを参照設定に追加し、コード上でインスタンスを生成して使用する場合は、licenses.licxの自動作成や自動追記は行われません。そのため、licenses.licxを手動で作成する必要があります。
  • Visual Studio 2012/2013のVisual BasicでWPFアプリケーションを開発する場合は、自動作成されたlicenses.licxがプロジェクトから除外されていることがあります。この事象はVisual Studioの問題により発生しています。

    licenses.licx is not updated for WPF control with DefaultInitializer uncer VS2012

    https://connect.microsoft.com/VisualStudio/feedback/details/773284/

    licenses.licx is not created/updated for WPF projects under VS2012

    https://connect.microsoft.com/VisualStudio/feedback/details/771595/

    licenses.licxが除外されている場合には、手動でプロジェクトに含めてください。
  • ライセンス付きコンポーネントをフォームや参照設定から削除しても、licenses.licxや記載された情報は削除されません。これらが不要な場合は、手動で削除する必要があります。


4. licenses.licxの記載内容
  • licenses.licxには、プロジェクト内で使用(参照)しているライセンス付きコンポーネントの情報を記載します。
  • 数種類のライセンス付きコンポーネントを使用している場合は、それぞれの情報を記載します。記載する情報は、1コンポーネントに対し1行分です。
    ※ 依存するライセンス付きコンポーネントがある場合は、その分の情報も必要です。
  • 1種類のライセンス付きコンポーネントを複数個使用している場合でも、記載する情報は1行分です。同じ情報を複数行記載する必要はありません。
licenses.licxの記載内容は、使用するコンポーネントやそのバージョンによって異なります。具体的な記載内容については、使用されている.NET製品の製品ヘルプをご覧ください。製品ヘルプは、スタートメニューなどから表示できます。

実際の記載例
以下は、InputMan for Windows Forms 7.0Jの「GcTextBox」と「GcMask」を使用する場合の記載例です。
GrapeCity.Win.Editors.GcTextBox, GrapeCity.Win.Editors.v70
GrapeCity.Win.Editors.GcMask, GrapeCity.Win.Editors.v70
「名前空間.クラス名」と「アセンブリ名」を、カンマ区切りで記載します。

なお、ツールボックスからコンポーネントを貼り付けると、licenses.licxの自動作成が行われますが、その場合は以下のように「Version」「Culture」「PublicKeyToken」に関する情報も記載されます。
GrapeCity.Win.Editors.GcTextBox, GrapeCity.Win.Editors.v70, Version=7.0.yyyy.mmdd, Culture=neutral, PublicKeyToken=0ce01a33ce55ca12
GrapeCity.Win.Editors.GcMask, GrapeCity.Win.Editors.v70, Version=7.0.yyyy.mmdd, Culture=neutral, PublicKeyToken=0ce01a33ce55ca12
上記における「, Version=」以降の文字列は、ビルド時のバージョンチェックなどを厳密に行うための情報ですので、必須ではありません。これらの文字列が記載されていなくも、アプリケーションにライセンスは正しく組み込まれます。
反対に、「, Version=」以降の文字列を記載した場合、プロジェクト内で使用しているアセンブリのバージョンとlicenses.licxに記載されているバージョン情報が異なるときには、ビルドやライセンスの組み込みに失敗します。そのため、サービスパックの適用時や、旧バージョンからの移行時には、移行ツールを使用するなどの方法で、licenses.licxの記載内容を更新する必要があります。
 注意事項


5. licenses.licxの配置場所
licenses.licxは、以下のいずれかのフォルダに配置します。
  1. (Visual Basicの場合)プロジェクトフォルダ下の「My Project」フォルダ
  2. (C#の場合)プロジェクトフォルダ下の「Properties」フォルダ
  3. プロジェクトのルートフォルダ
licenses.licxの自動作成が行われる場合は、使用言語やプロジェクトの種類に合わせて、1.~3.のフォルダに作成されます。
 メモ
  • ソリューションエクスプローラ上でlicenses.licxを表示するには、「すべてのファイルを表示」をオンにしてください。

 注意事項
  • licenses.licxが存在しても、プロジェクトから除外されている場合は、ビルドするアプリケーションにライセンスが組み込まれません。ソリューションエクスプローラ上でlicenses.licxを右クリックし、[プロジェクトに含める]を選択してください。
  • プロジェクト内に複数のlicenses.licxが存在する場合は、ビルドするアプリケーションに正しくライセンスが組み込まれない可能性があります。記載内容を1つのlicenses.licxにまとめ、それ以外のlicenses.licxはプロジェクトから削除してください。

.NET製品を使用したプロジェクトを、別のプロジェクトから使用する場合
.NET製品を使用して作成したプロジェクト(クラスライブラリやユーザーコントロールなど)を、別のプロジェクトで使用したり、リフレクションによって動的に呼び出したりする場合、呼び出し元となるアプリケーションのプロジェクトにlicenses.licxが必要です。

以下のイメージ図では、クラスライブラリのプロジェクト「MyLib.dll.vbproj」で.NET製品を使用し、そのクラスライブラリをWindowsフォームアプリケーションのプロジェクト「MyApp.exe.vbproj」から参照して呼び出していますが、この場合「MyApp.exe.vbproj」にlicenses.licxが必要です。クラスライブラリにlicenses.licxがあっても、それを呼び出すアプリケーションにライセンスは組み込まれません。


この場合、以下の点に注意してください。

(1) 最初に実行されるプロジェクトにlicenses.licxが必要
licenses.licxは最初に実行されるアプリケーションのプロジェクト(スタートアッププロジェクト)に必要です。上記の例で、「MyApp.exe.vbproj」をさらに別のプロジェクトから参照して呼び出す場合には、そのプロジェクトにlicenses.licxが必要になります。

(2) licenses.licxは自動で作成されない
.NET製品を使用したプロジェクトやアセンブリDLLを参照設定に追加しても、呼び出し元のプロジェクトにlicenses.licxは作成されないため、手動でlicenses.licxを作成するか、コピーしてプロジェクトに含める必要があります。詳細については「7. licenses.licxを手動で作成する」をご覧ください。

(3) ビルド環境には開発ライセンスが必要
呼び出し元のアプリケーションは別のプロジェクトやアセンブリDLLを介して.NET製品を使用しているため、このアプリケーションのプロジェクトをビルドする環境には、.NET製品の開発ライセンスが必要です。具体的には、「1. ライセンスを組み込むための条件」の条件1.(開発環境に対する条件)が満たされている必要があります。
 メモ

以下のような独自のコントロールを作成する場合は、LicenseProvider属性を設定することで、独自コントロールの使用時にもlicenses.licxの自動作成が行われるようにすることが可能です。
  • .NET製品のコントロールを継承したカスタムコントロール
  • .NET製品のコントロールと他のコントロールを組み合わせたユーザーコントロール
具体的には、以下のサンプルコードのように、クラス宣言の前にLicenseProviderの設定処理を実装します。

サンプルコード(VB.NET)
Imports System.Windows.Forms
Imports System.ComponentModel

' 継承コントロールの場合(InputMan for Windows Formsの「GcTextBox」を継承する例)
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class MyControl
    Inherits GrapeCity.Win.Editors.GcTextBox
    ・・・
End Class

' ユーザーコントロールの場合
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class UserControl1
    Inherits UserControl
    ・・・
End Class

サンプルコード(C#)
using System.Windows.Forms;
using System.ComponentModel;

// 継承コントロールの場合(InputMan for Windows Formsの「GcTextBox」を継承する例)
[LicenseProviderAttribute(typeof(LicenseProvider))]
public class MyControl : GrapeCity.Win.Editors.GcTextBox
{
    ・・・
}

// ユーザーコントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public class UserControl1 : UserControl
{
    ・・・
}
ただし、独自コントロール側でlicenses.licxの自動作成が行われた結果、licenses.licxの記載内容が継承元のコントロールと重複して不正な状態となり、「"LC.exe" はコード -1 を伴って終了しました」エラーなどの問題が発生する場合があります。ビルド時にlicenses.licxの記載内容が適切であることを確認してください。



6. licenses.licxのプロパティ
licenses.licxのプロパティ設定は以下のとおりです。
通常はデフォルトのままで特に変更する必要はありませんが、「ビルド アクション」プロパティを「埋め込まれたリソース」に設定する点に注意してください。

プロパティ名設定値
ファイル名licenses.licx
パス5. licenses.licxの配置場所」のパス+ファイル名
カスタム ツール(空欄)
カスタム ツールの名前空間(空欄)
ビルド アクション埋め込まれたリソース
出力ディレクトリにコピーコピーしない
 メモ
  • プロパティ設定は、Visual Studioのソリューションエクスプローラ上でlicenses.licxを選択することにより、プロパティウィンドウ上で確認できます。


7. licenses.licxを手動で作成する
コンポーネントのアセンブリを参照設定に追加して使用するときなど、licenses.licxの自動作成が行われない場合は、手動で作成する必要があります。

licenses.licxの作成手順
  1. Visual Studioの[プロジェクト]メニューから、[新しい項目の追加]を選択します。
  2. テンプレートから[テキストファイル]を選択し、ファイルの名前を「licenses.licx」に設定して、[追加]ボタンをクリックします。プロジェクトのルートフォルダにlicenses.licxが追加されます。
  3. 追加されたlicenses.licxに、「4. licenses.licxの記載内容」の情報を記載します。
  4. licenses.licxのプロパティが適切に設定されていることを確認します。

licenses.licxの自動作成動作を利用する方法
licenses.licxの自動作成が行われることを利用して、以下のような手順でも作成できます。
  1. Visual Studioのツールボックスからフォームに、使用するコンポーネントを貼り付けます。
  2. 手順1.で貼り付けたコンポーネントをフォームから削除します。
  3. 作成されたlicenses.licxに、使用するコンポーネントの情報が記載されていることを確認します。記載内容の詳細については「4. licenses.licxの記載内容」をご覧ください。
  4. licenses.licxのプロパティが適切に設定されていることを確認します。

licenses.licxファイルをコピーする場合の注意点
licenses.licxは単純なテキストファイルですので、製品のサンプルプロジェクトなどに含まれているlicenses.licxファイルをコピーしても、手動で作成する場合と同様の結果が得られます。ただし、以下の点で注意が必要です。

(1) licenses.licxをプロジェクトに含める
Windowsエクスプローラなどを使用して、licenses.licxファイルをプロジェクト内のフォルダへコピーしても、それだけではプロジェクトに追加されません。ソリューションエクスプローラ上でlicenses.licxを右クリックし、[プロジェクトに含める]を選択してください。


(2) licenses.licxの記載内容を確認する
別プロジェクトのlicenses.licxファイルをコピーした場合、必要な情報が記載されていなかったり、不要な情報が記載されていたりする可能性があります。licenses.licxの記載内容を確認してください。

(3) licenses.licxのプロパティを確認する
licenses.licxのプロパティが適切に設定されていることを確認してください。特に、「ビルド アクション」プロパティは「埋め込まれたリソース」に設定する必要があります。
 メモ
  • licenses.licxファイルをどのフォルダへコピーすれば良いかについては、「5. licenses.licxの配置場所」をご覧ください。


8. App_Licenses.dllを作成する(ASP.NET Webサイトのみ)
ASP.NETの「Webサイト」で.NET製品を使用する場合、App_Licenses.dll(ランタイムライセンスファイル)をlicenses.licxから作成し、ビルドしたWebサイトと共に運用環境へ配布する必要があります。

App_Licenses.dllとは
  • App_Licenses.dllは、ASP.NETの「Webサイト」のみで使用されるファイルです。
  • ASP.NETのWebサイトでは、原則として実行時にWebサイトがコンパイルされるため、他のプロジェクトのように開発時にライセンスを組み込むことができません。そのため、ライセンスをApp_Licenses.dllへ組み込み、それを実行時にWebサイトから参照することで、ライセンス付きコンポーネントを利用する仕組みになっています。
 注意事項
  • ASP.NETの「Webサイト」以外のプロジェクト(「ASP.NET Webアプリケーション」など)では、App_Licenses.dllを使用しませんので、作成する必要はありません。
  • .NET製品を参照設定に追加して使用する場合、licenses.licxの自動作成は行われませんので、App_Licenses.dllを作成する前に、licenses.licxを手動で作成する必要があります。
  • 製品にサービスパックを適用したときや、別のライセンス付きコンポーネントをプロジェクトに追加したときなど、licenses.licxの記載内容が更新された場合は、更新後のlicenses.licxから再度App_Licenses.dllを作成し、運用環境へ配布する必要があります。

App_Licenses.dllの作成手順
  1. Visual Studioのソリューションエクスプローラー上で、licenses.licxを右クリックします。
    licenses.licxが配置されているフォルダについては、「5. licenses.licxの配置場所」をご覧ください。
  2. コンテキストメニューから[ランタイム ライセンスの作成](Visual Studio 2005/2008の場合は[ランタイム ライセンスのビルド])を選択します。
  3. Binフォルダ内に、App_Licenses.dllが作成されます。
関連情報
キーワード
SPREAD ActiveReports InputMan FlexGrid

この情報は、疑問・問題解決のお役に立ちましたか?

    


こちらに入力されたご質問には回答できませんので、製品に関するお問い合わせは、別途「E-mailサポート」をご利用ください。


※ 個人情報保護のため、個人情報の記入はご遠慮ください。

このページの先頭へ