ここでの環境は C#/.Net 4 です。
私の MS Unit Test 単体テスト プロジェクトでは、日付変換計算に COM dll を使用するコードをテストしています (これは、他の COM DLL を使用するため、3 つの COM DLL すべてが関与します)。
通常のアプリケーション/サービスのセットアップで実行する場合、COM dll のアセンブリ ID にリンクするマニフェストを使用してサイド バイ サイドの実行を問題なく実行できますが、単体テストから同じことを実行しようとするとプロジェクトでは、「クラスが登録されていません」例外が原因で常に失敗します。
今、私はすでにこれを試しました:
- テスト DLL マニフェストの埋め込み
- テスト DLL マニフェスト、COM DLL マニフェスト + COM DLL 自体の両方を埋め込む
しかし、役に立たない。だから私は疑問に思っています.マニフェストを介したCOMリンクをユニットテスト環境に認識させるにはどうすればよいですか? 私には、DLLマニフェストのリンクがうまく機能していないように見えますが(EXEマニフェストは正常に機能しています)、通常、そのような考えは何か間違ったことをしているのと同じです...
私は通常、このようなものを検索するのにかなり成功していますが、これについてはヒットがほとんどなく、これに似たものは何もないので、何か考えや意見があれば共有してください:)が必要です、教えてください。
(COM dll の使用は、適切な場所に依存関係を挿入することでおそらく回避できることはわかっていますが、今のところ、サイド バイ サイド セットアップの単体テストに関するこのケースを検討したいと思います)。
敬具
ジェスパー