作成日: 2025/08/29 最終更新日: 2026/03/25
文書種別
技術情報
詳細
ActiveReportsやComponentOneの一部機能はDS.Documentsという名前のアセンブリ(NuGetパッケージ)に依存しています。DS.DocumentsはDioDocsの英語版に相当する製品です。NuGetパッケージとしては別名になっていますが、アセンブリや名前空間は共通しています。
DS.Documentsに依存する製品を同一プロジェクトで併用した場合、バージョンの組み合わせによっては競合エラーが発生します。
一例として、以下の組み合わせではDS.DocumentsのV7とV8で競合が発生します。
- ActiveReports for .NET 18.0J
- DS.DocumentsのV7に依存
- ComponentOne 2025J v1
- DS.DocumentsのV8に依存
各製品の依存バージョンはNuGetパッケージのDependenciesをご確認ください。
MESCIUS.ActiveReports.ja 18.2.0
DS.Documents.Imaging (>= 7.2.2 && < 8.0.0)
DS.Documents.Imaging (>= 8.0.5)
補足:ComponentOneの依存バージョンについて
2025J v1.1以降のComponentOneはDS.DocumentsのV7に依存しています。
バージョン競合の問題を回避するため、依存バージョンの下限が変更されました。
また、ComponentOneはDS.Documentsの依存バージョンに上限を設けていません。
V8J以降のDioDocsとも併用可能です。
※下限(7.2.6)が日本語版の最終バージョン(7.2.4)より上位であるため、V7Jとは併用できません。
ComponentOneと併用可能な他製品のバージョンは以下の通りです。
| ComponentOne | ActiveReports for .NET | DioDocs for Excel / PDF ※1 |
|---|---|---|
| 2025J v2 | 20.0J (20.0.1) 18.0J (18.0.0 - 18.2.0) ※2 |
V8J (8.0.3) 以降 |
| 2025J v1.1 | 20.0J (20.0.1) 18.0J (18.0.0 - 18.2.0) ※2 |
V8J (8.0.3) 以降 |
| 2025J v1 | 20.0J (20.0.1) | V8J SP1 (8.1.3) 以降 |
| 2024J v2.1 | 20.0J (20.0.1) | V8J (8.0.3) 以降 |
| 2024J v2 | 20.0J (20.0.1) 18.0J (18.0.0 - 18.2.0) |
V7J SP2 (7.2.2) 以降 |
ただし、依存バージョンの下限は将来的に再度変更となる可能性があります。
その際は、併用可能な組み合わせも変化します。あらかじめご留意ください。
※1
ComponentOneとDioDocsのみを併用する場合に可能となるバージョンです。
ActiveReportsとDioDocsを併用する場合については、本文書下部の関連記事をご確認ください。
※2
2025J v1.1 および 2025J v2 の時点では、V8への依存が部分的に残っています。
以下のパッケージを利用する場合、ActiveReports for .NET 18.0J とは併用できません。
併用できない組み合わせでアセンブリを参照した場合、アプリケーションの実行時にFileLoadExceptionなどの例外が発生します。
System.IO.FileLoadException: ファイルまたはアセンブリ 'DS.Documents.Imaging, Version=8.0.5.0, Culture=neutral, PublicKeyToken=d55d733d2bfd5065'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。
本動作は仕様上の制限となります。
競合が発生しないように、いずれかの製品のバージョンを変更する以外に有効な対処方法はありません。
ただし、プロジェクトのターゲットが.NET Frameworkの場合は、複数バージョンのアセンブリをプロジェクトの外部に配置する手法での併用が可能です。
具体的には、以下2つの手法が考えられます。
configファイルにcodeBase要素を追加する
.NET Frameworkの場合、App.configやWeb.configでアセンブリバージョンのリダイレクト(bindingRedirect)を設定できます。
このbindingRedirectと同階層にcodeBase要素を追加し、特定バージョンのみ、他のディレクトリにあるファイルを参照するように構成できます。
<bindingRedirect> 要素 - .NET Framework | Microsoft Learn
<codeBase> 要素 - .NET Framework | Microsoft Learn
ComponentOneのインストールディレクトリを参照させる場合、以下のように記述します。
<dependentAssembly>
<assemblyIdentity name="DS.Documents.Imaging" publicKeyToken="d55d733d2bfd5065" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.2.2.0" newVersion="7.2.2.0" />
<codeBase version="8.0.5.0" href="C:\Program Files (x86)\ComponentOne\WinForms\bin\v4.8\DS.Documents.Imaging.dll"/>
</dependentAssembly>各製品で必要となるバージョンのアセンブリをアプリケーションとは異なるフォルダに配布することで、運用環境にも同様の手法を適用できます。
DS.DocumentsをGACにインストールする
あらかじめGAC(グローバルアセンブリキャッシュ)にアセンブリをインストールする方法でも競合を回避できます。
GACの仕様については、マイクロソフト社の技術情報をご確認ください。
グローバル アセンブリ キャッシュ - .NET Framework | Microsoft Learn
Gacutil.exe - .NET Framework | Microsoft Learn
開発環境でのインストール手順を紹介します。
まず、適当なフォルダにパッケージを配置します。
Developer PowerShell for VS を管理者権限で起動し、以下のコマンドを実行します。
gacutil /i "C:\NuGet\ds.documents.imaging.7.2.2\lib\net461\DS.Documents.Imaging.dll"
gacutil /i "C:\NuGet\ds.documents.imaging.8.0.5\lib\net462\DS.Documents.Imaging.dll"
gacutil /i "C:\NuGet\ds.documents.pdf.7.2.2\lib\net461\DS.Documents.Pdf.dll"インストール済みのバージョンは以下のコマンドで確認できます。
gacutil /l DS.Documents.Imaging
gacutil /l DS.Documents.Pdfなお、アセンブリの実体は以下に配置されます。
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\DS.Documents.Imaging
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\DS.Documents.Pdfこの方法ではプロジェクト単位でbindingRedirectを設定する必要がありません。
exeの実行ディレクトリに該当バージョンが存在しない場合、自動でGACが検索対象になります。
※注意事項
この手法では「プロジェクトにインストールしているNuGetパッケージのバージョン」と「アプリケーションの実行時に参照するバージョン」が異なることになります。後者のバージョンはプロジェクトファイル等に保存されないため、バージョン管理が煩雑になるデメリットがあります。
この手法を採用する場合は、プロジェクトのコメントや仕様書などのドキュメントに記録を残しておくことをお勧めします。
関連記事
- ActiveReports for .NET 20.0J
- ActiveReports for .NET 18.0J
- ComponentOne