2016-09-26 23 views
0

同じフォルダにAssemblyOneとAssemblyTwoという2つのアセンブリがあります。私はAssemblyTho内のAssemblyOneでリソースファイルを使用しようとしていますが、もし私がそうした場合、Circuilar依存関係のためAssemblyTwoの参照リストに直接参照を追加できません。XAML - アセンブリを参照として追加せずに別のアセンブリリソースを参照する

私はAssemblyTwoでこれを試しました。

<ResourceDictionary Source="pack://application:,,,/AssemblyOne;component/Properties/Resources.resx" /> 

さらに、ファイル自体への直接リンク。

<ResourceDictionary Source="..\..\AssemblyOne\Properties\Resources.resx" /> 

両方とも不成功であったが、前者はエラーを返す。

Assembly 'AssemblyOne' is not referenced in this project. 

これは参照されていないので、後者は指定されたパスが見つからないというエラーを返します。

私が後にしていることをする方法はありますか?私の説明が不明な場合は申し訳ありません。

答えて

1

オプション1:

あなたは可能性がAssemblyOneへadd the file as a linkと内部リソースのようにそれを使用しています。これは、ファイルの1つのソースを維持しますが、両方のプロジェクトで使用されます。これはもう少し問題の「簡単な方法」です。

オプション2(優先):

は単にそれ内の共有リソースで新しいプロジェクト(たとえば、Assembly.Shared)を作成し、両方AssemblyOneで新しいプロジェクトまたは.dllを参照すると、 AssemblyTwo。これは多くの循環依存関係の一般的な解決策です。あなたはコード、リソースなどを共有するためにこれを行うことができます

+0

これは、リソースが少ないほうがいいと思いますが、アクセスが必要な唯一のアセンブリならオプション1がより良い方法だと思います主アセンブリ自体の外部のリソースに送信する。 – Dannys19

+0

私はそれが無視できると思います。実際には、両者の唯一の違いは、それらをどのように維持するかです。より多くの共有リソースで終わると、それは管理のためのより多くのリンクですが、アセンブリで1つの中央参照のみを管理することになります。私は両方のショットを与えるか、リンクで開始し、後でアセンブリに変更したいと思うでしょう。 – plast1k

+0

それは現時点ではかなり大きなシステムで作業している最善の方法かもしれませんが、リンクの代わりに共有アセンブリで作業するためにはかなりの変更が必要になります。しかし、ありがとう、トン。 – Dannys19

関連する問題