Bdsproj2mak の OLE エラー ClassID {F8FEDD39-E3CE-4B8D-A657-9CA24686881F} について

Abstract: .NET 2.0 がインストールされていると bdsproj2mak が OLE エラーを返却することがあります

現象:

BDSの C++ プロジェクトに対し bdsproj2mak を実行した際に、以下のエラーが発生することがあります:

OLE エラー 80131040, ClassID: {F8FEDD39-E3CE-4B8D-A657-9CA24686881F}
Exception EOleSysError in module rtl100.bpl at 00044A1D.
OLE エラー 80131040, ClassID: {F8FEDD39-E3CE-4B8D-A657-9CA24686881F}.

理由:

.NET Framework 2.0 がインストールされたマシンで bdsproj2mak を実行した場合、.NET 2.0 のランタイムが参照されてしまうために発生します。

対応方法:

実行時に .NET 1.1 のランタイムを参照するよう bdsproj2mak に対するマニフェストを作成します。

bdsproj2mak.exe と同じディレクトリ内 (...\BDS\4.0\Bin) に 以下の内容が記載されたbdsproj2mak.exe.config ファイルを作成します:

<?xml version="1.0"?>
<configuration>
  <startup>
    <requiredRuntime version="v1.1.4322" />
  </startup>
</configuration>

[この対応方法は Vladimir Ulchenko aka vavan によ NewsGroupに登校されたものです]