失敗
「Exception: NDoc.Core.DocumenterException バージョン 2.0 は互換性のあるバージョンではありません。」 (左図 のエラー)
上記エラーは、NDoc を使用して DLL から API リファレンスを作成しようとした際に発生しました。 対象の DLL が .NET Framework 2.0 環境でビルドされたことが問題のようです。
環境
このレポートは、以下の環境について記述したものです。
| OS | Windows XP SP 2 |
| .NET | .NET Framework 2.0 |
| Visual Studio | Visual Studio 2005 |
| NDoc | NDoc 1.3.1 日本語版 |
原因
NDoc 1.3.1 が対応している .NET Framework のバージョンは、1.0 および 1.1 です。2.0 には対応していません。 また、.NET Framework 2.0 に対応する予定だった NDoc 2.0 は開発中止になっています。
では、.NET Framework 2.0 環境でビルドされた DLL から API リファレンスを作成するのは無理なのでしょうか? いいえ、解決策はあります。…ちょっと強引な方法ですけどね。
解決策
NDoc のアプリケーション構成ファイル (詳しくは補足を参照) を作成し、CRL (Common Language Runtime : 共通言語ランタイム) のバージョンに .NET Framework 2.0 を追加します。
(1) NDocGui.exe.config の作成
NDocGui.exe 用のアプリケーション構成ファイルを作成し、.NET Framework 2.0 をサポートするように設定します。 CLR (共通言語ランタイム) をサポートさせるには、<supportedRuntime> 要素を使用します。
<?xml version="1.0" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v1.1.4322" />
<requiredRuntime version="v1.1.4322" />
</startup>
</configuration>
(2) NDocGui.exe.config を NDocGui.exe と同じディレクトリに配置
作成した NDocGui.exe.config を /bin ディレクトリに配置します。
図2 NDocGui.exe.config の配置
以上の設定で、NDoc 1.3.1 を .NET Framework 2.0 に対応させることができます。
ただし、この方法は強制的に .NET Framework 2.0 に対応させただけです。当然のことながら、NDoc の『SdkDocVersion』プルダウンには反映されません(下図参照)。
『SdkDocVersion』の値は、デフォルト値の『.NET Version 1.1』ままで実行してください。
補足
■ アプリケーション構成ファイルとは?
アプリケーション固有の設定を XML 形式で記述したファイルです。
| ファイル名 | <EXE ファイル名>.config |
| 配置場所 | EXE ファイルと同じディレクトリ |
| 内容 |
以下の設定を記述することができます。
|
