設計時に Prism Regions を表示できるカスタム アセンブリをコーディングしました。
私のアセンブリが行うことの 1 つは、スタートアップ プロジェクトからアセンブリを読み込むことです。(Prismのモジュールカタログを使用。)
シンプルなアプリの場合、うまく機能します。
しかし、実際のアプリに入れようとすると、設計時のビューが壊れます (実行時は正常に動作します)。
プロジェクトで使用する ResourceDictionary を含むファイルが見つからないというメッセージが表示されます。
また、その ResourceDictionary によって使用されるアセンブリの 1 つが見つからないことも示しています。
私の推測では、スタートアップの場所からアセンブリをプルすると、この問題が発生します。
しかし、次の理由により、これは私には意味がありません。
ResourceDictionary は、次のようにビューに読み込まれます。
<UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/DataProviders.xaml"/> </ResourceDictionary.MergedDictionaries> ...
ただし、それをロードするファイルは出力に含まれません。したがって、dll にコンパイルする必要があります。
それは私がこれがうまくいくはずだと思うように導きます:<ResourceDictionary Source="/MyProj;component/DataProviders.xaml" />
しかし、それもうまくいきません。(スラッシュありとなしで試しました。)
場所の問題である場合 (出力場所 (bin\debug) ではなく開始プロジェクトから読み込んでいるため、欠落していると思われる他のアセンブリが見つからないのはなぜですか?
.
そのアセンブリは出力に含まれています)両方のプロジェクト (スタートアップと問題のプロジェクト) のフォルダー。それが場所だと考えて、ソースで絶対パスを試しました。このような:
<ResourceDictionary Source="C:/src/solution/Regns/MyProj/DataProviders.xaml"/>
それもうまくいきませんでした。(リソースファイルが見つからないと言われました。)
これについて考えてみると、私は ResourceDictionarys がどのように機能するかについて十分に理解していないと判断しました。
ResourceDictionary がロードされない理由を教えてください。