1

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

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

4

1 に答える 1

0

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

于 2011-10-19T20:05:44.303 に答える