2011-10-18 7 views
1

私は、COM相互運用プロジェクトを介してVB6アプリケーションから.NET 4(C#)/ WPFウィンドウを起動する必要があるプロジェクトに取り組んでいます。 WPFウィンドウには、Microsoft Ribbon for WPFコンポーネント(RibbonControlsLibrary.dll、.NET interopプロジェクトの依存関係として含まれる)への参照が含まれています。 .NETテストクライアントからウィンドウが開かれてもすべて正常に動作しますが、VB6から開くと、リボンのintstantiation中にXamlParseExceptionが発生します。さらにデバッグすると、RibbonControlsLibrary.dllが見つかりませんでした。これは、interopプロジェクトの出力ディレクトリに正常にコピーされているにもかかわらず、ウィンドウが解析できませんでした。ウィンドウのXAML定義からリボン宣言を削除すると、.NETとVB6の両方から正常に起動できます。RibbonControlsLibraryを認識しないWPF/VB6 interop

この特定のVB6プロジェクトには、純粋な.NETコンポーネントをこのように参照するいくつかの対応する.NET相互運用プロジェクトがあります。 RibbonControlsLibraryコンポーネントは、この動作を引き起こすのに十分な違いはありますか?

+0

VB6とWPF間のinteropは問題になるのですか?純粋なWPFで書き直すのはなぜですか? – CJ7

+0

一般に私は同意します。しかし、現在の状況では、十分な時間とリソースがなく、起こりえないすべての機会に変化に抵抗する頑固なユーザー基盤を持っています。 – Jesse

答えて

0

結局のところ、この問題はアセンブリバインディングの問題ではありませんでした。 RibbonButtonのSmallImageSource属性は、VB6で.NET COM相互運用クラスを介してライブラリにアクセスするときに認識されませんでした。私の場合、この属性は必要ではないので、それを削除することで問題は解決しました。

関連する問題