PartCover を実行して、Windows x64 で Gallio を使用していくつかのテストのカバレッジをテストしようとしています。ただし、実行しようとすると、次のエラーが発生します。
次のエラーのため、CLSID {FB20430E-CDC9-45D7-8453-272268002E08} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040153。
編集:PartCover 2.2.0を使用しています
この問題は、PartCover が 64 ビットの .NET VM で実行されているときに、32 ビットの dll をロードしようとするために発生します。
トリックは、PartCover を 32 ビット VM で強制的に実行することです。これを行うには、CorFlags.exe というツールを使用して exe を変更し、32 ビットとしてフラグを立てる必要があります。これは、x86 をターゲットとしてビルドされたものと同等です。
CorFlags (私のマシン上) は Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\ にあります
32 ビット フラグを設定するには、次のコマンドを実行します。
CorFlags.exe PartCover.exe /32BIT+ /Force
また、実行中のプログラム (私の場合は Gallio テスト ランナー) に対しても同じことをしなければならないことがわかりました。