ライセンスに関する例外やダイアログが表示される場合の対処法

文書番号 : 32273     文書種別 : 技術情報     登録日 : 2012/04/16     最終更新日 : 2012/04/16
文書を印刷する
対象製品
ComponentOne Studio 2012J
詳細
製品版やトライアル版のライセンス認証が正常に行われている状態でも、製品の使用方法によっては、以下のような例外やダイアログが表示される場合がございます。

・製品版を使用しているにも関わらず、トライアル版に関するダイアログが表示される
・「[Component name]のライセンスが無効です。」の例外(LicenseException)が発生する。
・「[Component name]のライセンスが確認できません。」の例外(LicenseException)が発生する。

※トライアル版のライセンス認証を行っている場合は、設計時と実行時にトライアル版であることを示すダイアログが表示されます。詳細については こちら をご参照ください。

この場合、以下のような原因と対処法が考えられます。

1.ライセンス認証をしていない

製品をご使用になるには、インストール後に「ライセンス認証/認証解除ツール」を実行し、ライセンス認証する必要があります。トライアル版としてご使用いただく場合も、トライアル版のプロダクトキーを入力してライセンス認証する必要があります。製品がライセンス認証されているかどうかは、「ライセンス認証/認証解除ツール」を実行することで確認できます。

2.以前ビルドした中間ファイルや出力ファイルが残っている

(1)対象のプロジェクトを開きます。
(2)Visual Studio の [ビルド(B)] メニューからプロジェクト名(またはソリューション名)のリビルドを実行します。

3.プロジェクト内に licenses.licx ファイルが存在しない

(1)対象のプロジェクトを開きます。
(2)Visual Studio のソリューションエクスプローラーの [すべてのファイルを表示] ボタンをクリックします。
(3)ソリューションエクスプローラー内に licenses.licx ファイルがないか、もしくは licenses.licx ファイルに使用しているコントロール名が記載されていない場合は、次の(4)~(7)を実行します。
(4)[デザイン] ページを開いて新しい FlexGrid コントロールを Form に貼り付けます。
(5)[ビルド(B)] メニューにある「(プロジェクト名)のリビルド」を実行します。
(6)ソリューションエクスプローラー内に licenses.licx ファイルが作成されたことを確認します。
(7)さきほど貼り付けたボタンコントロールを削除し、プロジェクトを保存します。

4.licenses.licx ファイルが「埋め込まれたリソース」に設定されていない

(1)対象のプロジェクトを開きます。
(2)Visual Studio のソリューションエクスプローラーの [すべてのファイルを表示] ボタンをクリックします。
(3)ソリューションエクスプローラー内に licenses.licx ファイルを選択します。
(4)プロパティウィンドウから「ビルドアクション」を「埋め込まれたリソース」に設定されているか確認します。
(5)「ビルドアクション」が「埋め込まれたリソース」以外の場合には「埋め込まれたリソース」に設定します。

5.コントロールを動的に生成している

設計時にコントロールをフォームに貼り付けると Licenses.licx ファイルが自動的に作成され、プロジェクトに組み込まれます。しかし、実行時にコントロールを生成する場合には、Licenses.licx ファイルは作成されません。この場合は以下の手順に従って licenses.licx ファイルを作成し、プロジェクトに追加してください。

(1)Visual Studio で新しいプロジェクトを開きます。
(2)FlexGrid のコンポーネントを参照設定します。
(3)ソリューションエクスプローラ上のソリューション名を右クリックします。
(4)表示されたコンテキストメニューで[追加]-[新しい項目の追加]をクリックします。
(5)表示されたダイアログで「テキストファイル」を選択し、ファイル名に「Licenses.licx」と入力して開くボタンをクリックします。
(6)以下の文字列を Licenses.licx に入力します。(利用するアセンブリバージョンを記述します。)

FlexGrid for Windows Formsの例:
.NET Framework 2.0 ビルドを使用する場合
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2

.NET Framework 4 ビルドを使用する場合
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.4

(7)Licenses.licx を保存します。
(8)Licenses.licx をプロジェクトに追加し、プロパティウィンドウから「ビルドアクション」を「埋め込まれたリソース」に設定する。

6.ユーザーコントロール内で使用している

製品のコントロールを継承して独自のコントロールを作成したり、他のコントロールと組み合わせてユーザーコントロールを作成する場合は、LicenseProvider 属性を設定する必要があります。作成したコントロールに LicenseProvider 属性を設定していない場合は、製品のライセンス情報を参照できないので、そのコントロールを使ったアプリケーションを実行したときに、ライセンスエラーが表示されます。コントロールに LicenseProvider 属性を設定するには、次のように、クラスの宣言の前に LicenseProvider 属性を設定します。

FlexGrid for Windows Formsの例:
[Visual Basic]
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel

' 継承コントロールの場合
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class MyControl
  Inherits 継承元のクラス
  ...
End Class

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

[C#]
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;

// 継承コントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public partial class MyControl : 継承元のクラス
{
  ...
}

// ユーザーコントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public partial class UserControl1 : UserControl
{
  ...
}

7.クラスライブラリなどに配置して他のアセンブリから呼び出している

製品収録コンポーネントを使用していないアセンブリから、製品収録コンポーネントが使用されているアセンブリを呼び出した場合に発生します。これは製品のライセンス仕様上の正しい処理です。

製品収録コンポーネントをクラスライブラリなどで使用し、他のアセンブリから呼び出して使用する場合は、呼び出し元のプロジェクトにも 製品のライセンスが必要です。この場合、以下のような 製品収録コンポーネント のライセンス情報を記述した licenses.licx ファイルを作成し、埋め込みリソースとして呼び出し元のプロジェクトに追加します。(利用するアセンブリバージョンを記述します。)

FlexGrid for Windows Formsの例:
.NET Framework 2.0 ビルドを使用する場合
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2

.NET Framework 4 ビルドを使用する場合
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.4

8.VSS (Visual Source Safe) によるモジュール管理を行っている

当ツールよるモジュール管理を行う場合、特に licenses.licx ファイルの扱いには十分に注意する必要があります。

例えば 「最新情報の取得」 や 「チェックイン/アウト」 が適切に行われなかった場合、サーバ側とクライアント側の licenses.licx ファイルの同期が取られていない (例 : クライアント側の情報が古いままになっている) などの理由から、正しいライセンス情報がプロジェクトに読み込まれず、結果的にライセンスエラーが表示してしまう可能性もあります。つまり、これらは当ツールにおけるユーザー操作に大きく依存する現象であるため、製品側での抜本的な解決策はありません。

このような場合は、例えばソースコード編集の際には licenses.licx ファイルも同時にチェックイン/アウトする (または常に最新情報の取得を行う) などの運用面を考慮することで常に同期を保ったり、場合によっては予め本ファイルを管理下から除外する等の対応もご検討ください。 なお、当ツールの使用方法に関しては MSDN ライブラリ等の各種参考文献をご覧ください。

9.UAC(ユーザーアカウント制御)を有効にしている

UAC(ユーザーアカウント制御)により、製品情報をレジストリから取得できない場合があります。その結果、正しいライセンス情報がプロジェクトに読み込まれず、結果的にライセンスエラーが表示される場合があります。 Visual Studio を管理者権限で実行してください。

10.仮想マシンをコピーして使用している

Virtual PC や VMware などのエミュレータ(Windows 7のXPモード含む)で生成した仮想マシン上に製品をインストールする場合は、仮想マシン1つにつき1開発ライセンスが必要です。

製品がインストールされた仮想マシンイメージを別の PC にコピーして使用した場合、ライセンス認証(ソフトウェアアクティベーション)の仕組み上、ハードウェア構成が変わったと判断され、ライセンスエラーが表示される場合があります。

この場合は、ライセンス認証を解除してから、製品をインストールしているすべての仮想マシンでライセンス認証を行ってください。

11.そのほか

弊社 Web サイトの「ライセンス認証 FAQ」にも、関連する情報を掲載しています。お手数とは存じますが、こちらの内容をご参照ください。

Q13 ライセンス認証の手続きは正常に完了したはずですが、「ライセンスについて」のダイアログやトライアル版のダイアログが表示されます。

Q14 ライセンス認証手続きは正常に完了しましたが、「ライセンスが無効です。」というダイアログやトライアル版のダイアログが表示されます。

Q21 複数のCPUを搭載しているコンピュータでは、正しくライセンス認証が完了しているにもかかわらず、「ライセンスについて」のダイアログやトライアル版のダイアログが表示される場合があります。