2

で別のプロジェクトを使用するメインアプリがありますMarkupExtension。参照を追加し、XAML ファイルにも追加しましたが、使用しようとするとエラーが発生します。

error MC3048: '{loc:Translate View3dDialog}' value is not a valid MarkupExtension expression. 
Cannot resolve 'Translate' in namespace 'clr-namespace:TranslationByMarkupExtension'.
'Translate' must be a subclass of MarkupExtension. Line 7 Position 9.

MarkupExtensionTranslationExtensionのサブクラスです (もちろんパブリックです)

ソリューション全体を再構築しました-変更はありません。

4

1 に答える 1

2

xmlns:loc指していると思いclr-namespace:TranslationByMarkupExtensionますか?その名前空間は同じアセンブリ内にありますか? その場合、アセンブリが (まだ) ビルドされていないため、VS が更新されたアセンブリを読み取れない (できない) という問題が発生する可能性があります。XAML を使用するアセンブリとは別にコンパイル/ビルドされる別のアセンブリに拡張機能を抽出しようとする場合があります。

(考えられるケース: XAML コンパイラは拡張機能を読み取る必要があり、現在のアセンブリからのものであるため、問題があります。現在のアセンブリはまだビルドされておらず、XAML がコンパイルされていない = クローズド サイクルであるためです。強制的に修正しようとしないでください。 . 可能性としては、コンパイラがだまされてアセンブリの「古い/前の」バージョンを読み取られる可能性がありますが、それにより、他の非常に多くの邪悪で追跡が困難な問題が発生します..)。

すでに他のアセンブリにある場合は、 が をxmlns:loc指していることを確認してください。単にパーツclr-namespace:TranslationByMarkupExtension;assembly=MyAssemblyWithTheExtensionを忘れた可能性があります。assembly

于 2014-11-17T10:59:12.447 に答える