作成日: 2013/11/18 最終更新日: 2015/02/27
文書種別
技術情報
詳細
C1Reportのカスタムフィールドを使用するときに、以下のようなエラーが発生することがあります。
「'c1.c1report.customfields.4' から 'C1.C1Report.CustomFields.XXXX' カスタムフィールドの作成に失敗しました。
¥r¥nアセンブリとその依存関係が利用可能であることを確認してください。」
※ XXXX:カスタムフィールドの名前(例:GCBarcode、JustifyTextなど)
このような場合は、以下の点を確認してください。
=========================
(A) プロジェクトの参照設定
=========================
プロジェクトに以下のアセンブリへの参照が追加されているか確認します。
【.NET Framework 2.0 用アセンブリ】
・C1.C1Report.2.dll
・C1.Win.C1Report.2.dll
・C1.C1Report.CustomFields.2.dll
・Grapecity.BarCode.2.dll // バーコードを使用する場合
・C1.Win.C1Chart.2.dll // グラフフィールドを使用する場合
【.NET Framework 4 用アセンブリ】
・C1.C1Report.4.dll
・C1.Win.C1Report.4.dll
・C1.C1Report.CustomFields.4.dll
・Grapecity.BarCode.4.dll // バーコードを使用する場合
・C1.Win.C1Chart.4.dll // グラフフィールドを使用する場合
=========================
(B) Form.resxの変更
=========================
プロジェクトにおけるカスタムフィールドの情報は、Form.resxに以下のような形で含まれています。
(例)
CustomField asm="C1.C1Report.CustomFields.2" class="C1.C1Report.CustomFields.XXXX"
CustomField asm="C1.C1Report.CustomFields.4" class="C1.C1Report.CustomFields.XXXX"
※「asm=」の部分はカスタムフィールドの定義されているアセンブリ名、「class=」の部分はカスタムフィールドの名前空間です。
カスタムフィールド用アセンブリ名は、C1Studio 2008Jまでは「C1.Win.C1Report.CustomFields.2.dll」でしたが、C1Studio 2010J以降では「C1.C1Report.CustomFields.2.dll」に変更され、それと共に名前空間名も「C1.Win.C1Report.CustomFields」から「C1.C1Report.CustomFields」に変わりました。
◇ビルド2.5.20091.304(C1Studio 2008J)以前
CustomField asm="C1.Win.C1Report.CustomFields.2" class="C1.Win.C1Report.CustomFields.XXXX"
◇ビルド2.6.20093.53218(C1Studio 2010J)以降
CustomField asm="C1.C1Report.CustomFields.2" class="C1.C1Report.CustomFields.XXXX"
そのため、該当する旧バージョンの.NET Framework 2.0用プロジェクトを移行した場合には、現在の形式に合わせてForm.resxの記載内容を変更する必要があります。
なお、.NET Framework 4 用アセンブリでは、すべてのビルドが以下の形式で指定されているため、変更する必要はありません。
【.NET Framework 4 用アセンブリ】
CustomField asm="C1.C1Report.CustomFields.4" class="C1.C1Report.CustomFields.XXXX"
※アセンブリ名とカスタムフィールドの名前空間との関連については、レポートデザイナのフォルダ内にあるC1ReportDesigner.2.exe.settingsの記載内容で確認することができます。
=========================
(C) VerticalText、RoundRectフィールドの廃止
=========================
ビルド2.6.20131.546282および4.6.20131.54628のレポートデザイナでは、以下の2つのフィールドが廃止されました。Form.resxまたはレポート定義ファイル(*.xml)にこのフィールドの記載があれば、削除する必要があります。
•縦書きテキスト(VerticalText)フィールド
文字列の縦書き表示は、通常のラベルフィールドのTextAngleプロパティを「270」に設定してご利用ください。
•角丸四角形(RoundRect)フィールド
角丸四角形の表示は、グラデーション(Gradient)フィールドのBorderRadiusプロパティをご利用ください。
=========================
(D) C1Reportデザイナと同じフォルダ内のアセンブリの存在
=========================
C1Reportデザイナがコピーされたフォルダ内に、次のアセンブリが存在することを確認します。
・Grapecity.BarCode.2.dll // バーコードを使用する場合
・C1.Win.C1Chart.2.dll // グラフフィールドを使用する場合
※コピーミスなど、何らかの理由でこれらのアセンブリが存在しない場合、拡張バーコード、またはグラフフィールドを含むレポート定義ファイルをC1Reportデザイナで開こうとすると、このエラーが発生します。
=========================
(E) カスタムフィールド関連アセンブリのバージョン
=========================
プロジェクトに追加した①のアセンブリのバージョンが、レポートデザイナがインストールされたフォルダにある各アセンブリのバージョンと同じであることを確認します。
※C1.C1Report.CustomFields.X.dll (Xは「2」または「4」)は、(A)の各種アセンブリを用いてビルドされます。そのため、プロジェクトで参照するC1.C1Report.CustomFields.X.dllと各種アセンブリのバージョン間の整合性が取れていないとこのエラーが発生します。これらのアセンブリはレポートデザイナのインストールされたフォルダにコピーされているので、ここでバージョンを確認できます。
レポートデザイナ(C1ReportDesigner.exe)のインストール先は、次の通りです。
•2014J v2以前
・32ビットOSの場合
C:¥Program Files¥ComponentOne¥C1Reports¥v2
または、
C:¥Program Files¥ComponentOne¥C1Reports¥v4
・64ビットOSの場合
C:¥Program Files (x86)¥ComponentOne¥C1Reports¥v2
または、
C:¥Program Files (x86)¥ComponentOne¥C1Reports¥v4
•2014J v3以降
・32ビットOSの場合
C:¥Program Files¥ComponentOne¥Apps¥v2
または、
C:¥Program Files¥ComponentOne¥Apps¥v4
・64ビットOSの場合
C:¥Program Files (x86)¥ComponentOne¥Apps¥v2
または、
C:¥Program Files (x86)¥ComponentOne¥Apps¥v4
なお、現在インストールされているバージョン以外のレポート用アセンブリを参照する場合は、C1.C1Report.CustomFields.X.dllも、そのバージョンのレポート用アセンブリを用いてビルドされたものを使用しなければなりません。
これが入手できない場合、製品収録のCustomFieldsサンプルを使用してC1.C1Report.CustomFields.X.dllをビルドすることができます。CustomFieldsサンプルの詳細は、サンプルヘルプを参照してください。
※「レポート用アセンブリ」とはC1.C1Report.X.dll、C1.Win.C1Report.X.dllを指します。
=========================
(F) 対象のフレームワーク
=========================
カスタムフィールドを使用しているプロジェクトのプロパティの「詳細コンパイルオプション」で、「対象のフレームワーク」を確認します。
これが 「.NET Framework 3.5 Client Profile」または「.NET Framework 4 Client Profile」に設定されていると、最初に記載したエラーが発生します。このとき、以下のような警告も表示されます。
----------
【警告】 (.NET Framework 4 Client Profileの場合)
現在のターゲット フレームワーク ".NETFramework,Version=v4.0,Profile=Client" 内に、参照アセンブリ "C1.C1Report.CustomFields.4, Version=4.6.20122.54515, Culture=neutral, PublicKeyToken=dd1ca9167faa7c4f, processorArchitecture=MSIL" が依存する "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" が含まれていません。このため、参照アセンブリを解決できませんでした。
----------
カスタムフィールド用アセンブリ(C1.C1Report.CustomFields.X.dll (Xは「2」または「4」))は、System.Design.dllを参照しています。このシステムファイルは、「.NET Framework 3.5 Client Profile」または「.NET Framework 4 Client Profile」には含まれていないため、エラーが発生します。
この場合は、「対象対象のフレームワーク」を上記以外(「.NET Framework 3.5」または「.NET Framework 4 」など)に変更してください。
「'c1.c1report.customfields.4' から 'C1.C1Report.CustomFields.XXXX' カスタムフィールドの作成に失敗しました。
¥r¥nアセンブリとその依存関係が利用可能であることを確認してください。」
※ XXXX:カスタムフィールドの名前(例:GCBarcode、JustifyTextなど)
このような場合は、以下の点を確認してください。
=========================
(A) プロジェクトの参照設定
=========================
プロジェクトに以下のアセンブリへの参照が追加されているか確認します。
【.NET Framework 2.0 用アセンブリ】
・C1.C1Report.2.dll
・C1.Win.C1Report.2.dll
・C1.C1Report.CustomFields.2.dll
・Grapecity.BarCode.2.dll // バーコードを使用する場合
・C1.Win.C1Chart.2.dll // グラフフィールドを使用する場合
【.NET Framework 4 用アセンブリ】
・C1.C1Report.4.dll
・C1.Win.C1Report.4.dll
・C1.C1Report.CustomFields.4.dll
・Grapecity.BarCode.4.dll // バーコードを使用する場合
・C1.Win.C1Chart.4.dll // グラフフィールドを使用する場合
=========================
(B) Form.resxの変更
=========================
プロジェクトにおけるカスタムフィールドの情報は、Form.resxに以下のような形で含まれています。
(例)
CustomField asm="C1.C1Report.CustomFields.2" class="C1.C1Report.CustomFields.XXXX"
CustomField asm="C1.C1Report.CustomFields.4" class="C1.C1Report.CustomFields.XXXX"
※「asm=」の部分はカスタムフィールドの定義されているアセンブリ名、「class=」の部分はカスタムフィールドの名前空間です。
カスタムフィールド用アセンブリ名は、C1Studio 2008Jまでは「C1.Win.C1Report.CustomFields.2.dll」でしたが、C1Studio 2010J以降では「C1.C1Report.CustomFields.2.dll」に変更され、それと共に名前空間名も「C1.Win.C1Report.CustomFields」から「C1.C1Report.CustomFields」に変わりました。
◇ビルド2.5.20091.304(C1Studio 2008J)以前
CustomField asm="C1.Win.C1Report.CustomFields.2" class="C1.Win.C1Report.CustomFields.XXXX"
◇ビルド2.6.20093.53218(C1Studio 2010J)以降
CustomField asm="C1.C1Report.CustomFields.2" class="C1.C1Report.CustomFields.XXXX"
そのため、該当する旧バージョンの.NET Framework 2.0用プロジェクトを移行した場合には、現在の形式に合わせてForm.resxの記載内容を変更する必要があります。
なお、.NET Framework 4 用アセンブリでは、すべてのビルドが以下の形式で指定されているため、変更する必要はありません。
【.NET Framework 4 用アセンブリ】
CustomField asm="C1.C1Report.CustomFields.4" class="C1.C1Report.CustomFields.XXXX"
※アセンブリ名とカスタムフィールドの名前空間との関連については、レポートデザイナのフォルダ内にあるC1ReportDesigner.2.exe.settingsの記載内容で確認することができます。
=========================
(C) VerticalText、RoundRectフィールドの廃止
=========================
ビルド2.6.20131.546282および4.6.20131.54628のレポートデザイナでは、以下の2つのフィールドが廃止されました。Form.resxまたはレポート定義ファイル(*.xml)にこのフィールドの記載があれば、削除する必要があります。
•縦書きテキスト(VerticalText)フィールド
文字列の縦書き表示は、通常のラベルフィールドのTextAngleプロパティを「270」に設定してご利用ください。
•角丸四角形(RoundRect)フィールド
角丸四角形の表示は、グラデーション(Gradient)フィールドのBorderRadiusプロパティをご利用ください。
=========================
(D) C1Reportデザイナと同じフォルダ内のアセンブリの存在
=========================
C1Reportデザイナがコピーされたフォルダ内に、次のアセンブリが存在することを確認します。
・Grapecity.BarCode.2.dll // バーコードを使用する場合
・C1.Win.C1Chart.2.dll // グラフフィールドを使用する場合
※コピーミスなど、何らかの理由でこれらのアセンブリが存在しない場合、拡張バーコード、またはグラフフィールドを含むレポート定義ファイルをC1Reportデザイナで開こうとすると、このエラーが発生します。
=========================
(E) カスタムフィールド関連アセンブリのバージョン
=========================
プロジェクトに追加した①のアセンブリのバージョンが、レポートデザイナがインストールされたフォルダにある各アセンブリのバージョンと同じであることを確認します。
※C1.C1Report.CustomFields.X.dll (Xは「2」または「4」)は、(A)の各種アセンブリを用いてビルドされます。そのため、プロジェクトで参照するC1.C1Report.CustomFields.X.dllと各種アセンブリのバージョン間の整合性が取れていないとこのエラーが発生します。これらのアセンブリはレポートデザイナのインストールされたフォルダにコピーされているので、ここでバージョンを確認できます。
レポートデザイナ(C1ReportDesigner.exe)のインストール先は、次の通りです。
•2014J v2以前
・32ビットOSの場合
C:¥Program Files¥ComponentOne¥C1Reports¥v2
または、
C:¥Program Files¥ComponentOne¥C1Reports¥v4
・64ビットOSの場合
C:¥Program Files (x86)¥ComponentOne¥C1Reports¥v2
または、
C:¥Program Files (x86)¥ComponentOne¥C1Reports¥v4
•2014J v3以降
・32ビットOSの場合
C:¥Program Files¥ComponentOne¥Apps¥v2
または、
C:¥Program Files¥ComponentOne¥Apps¥v4
・64ビットOSの場合
C:¥Program Files (x86)¥ComponentOne¥Apps¥v2
または、
C:¥Program Files (x86)¥ComponentOne¥Apps¥v4
なお、現在インストールされているバージョン以外のレポート用アセンブリを参照する場合は、C1.C1Report.CustomFields.X.dllも、そのバージョンのレポート用アセンブリを用いてビルドされたものを使用しなければなりません。
これが入手できない場合、製品収録のCustomFieldsサンプルを使用してC1.C1Report.CustomFields.X.dllをビルドすることができます。CustomFieldsサンプルの詳細は、サンプルヘルプを参照してください。
※「レポート用アセンブリ」とはC1.C1Report.X.dll、C1.Win.C1Report.X.dllを指します。
=========================
(F) 対象のフレームワーク
=========================
カスタムフィールドを使用しているプロジェクトのプロパティの「詳細コンパイルオプション」で、「対象のフレームワーク」を確認します。
これが 「.NET Framework 3.5 Client Profile」または「.NET Framework 4 Client Profile」に設定されていると、最初に記載したエラーが発生します。このとき、以下のような警告も表示されます。
----------
【警告】 (.NET Framework 4 Client Profileの場合)
現在のターゲット フレームワーク ".NETFramework,Version=v4.0,Profile=Client" 内に、参照アセンブリ "C1.C1Report.CustomFields.4, Version=4.6.20122.54515, Culture=neutral, PublicKeyToken=dd1ca9167faa7c4f, processorArchitecture=MSIL" が依存する "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" が含まれていません。このため、参照アセンブリを解決できませんでした。
----------
カスタムフィールド用アセンブリ(C1.C1Report.CustomFields.X.dll (Xは「2」または「4」))は、System.Design.dllを参照しています。このシステムファイルは、「.NET Framework 3.5 Client Profile」または「.NET Framework 4 Client Profile」には含まれていないため、エラーが発生します。
この場合は、「対象対象のフレームワーク」を上記以外(「.NET Framework 3.5」または「.NET Framework 4 」など)に変更してください。
関連情報
旧文書番号
80588