XAML - 引用其他程序集资源,而不添加程序集作为引用

时间:2016-09-26 09:20:34

标签: wpf xaml

我在同一个文件夹中有两个Assemblies,AssemblyOne和AssemblyTwo。我正在尝试在AssemblyTwo中使用AssemblyOne中的资源文件,但由于环境依赖性,我无法在AssemblyTwo中添加对引用列表的直接引用。

我在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 个答案:

答案 0 :(得分:1)

选项1:

你可以add the file as a link到AssemblyOne并像内部资源一样使用它。这维护了文件的一个来源,但两个项目都使用它。对于这个问题,这是一个“简单的出路”。

选项2(首选):

只需使用其中的共享资源创建一个新项目(例如,Assembly.Shared),并在AssemblyOne和AssemblyTwo中引用新项目或.dll。这是许多循环依赖情况的一般解决方案。您可以这样做来共享代码,资源等。