WPF中的包符号

时间:2009-08-26 17:26:04

标签: wpf xaml notation pack

我对包装符号有疑问。

我正在尝试从另一个资源程序集访问XAML页面中的png图像文件。

假设资源程序集(我的xaml文件所在的本地程序集之外)是ResourceAssembly.Common.Resources 我的图片在ResourceAssembly.Common.Resources/Images/image.png

我的包装符号如下所示:

<Image Source="pack://application:,,,/ResourceAssembly.Common.Resources;component/Images/image.png" />

现在,我已经检查过这个并再次检查,检查了MSDN库,检查了博客和所有内容,据我所知,这是正确的。我不确定为什么我的图像没有显示或问题是什么。

我得到的错误是: “Error 633 Could not load file or assembly 'ResourceAssembly.Common.Resources, Culture=neutral' or one of its dependencies. The system cannot find the file specified.

我想我错过了一些简单的关键字或一些简单的语法错误,或者其他类似的东西,因为这总是我的问题,但任何帮助都是非常宝贵的。

谢谢! Anuj

1 个答案:

答案 0 :(得分:5)

当我开始使用包符号时,我遇到了类似的问题,但我现在不记得具体问题是什么。你的包装符号看起来与我的相同,所以我会验证每个部分并确保它是正确的:

  1. 资源程序集的AssemblyInfo.cs是否包含:[assembly: AssemblyTitle("ResourceAssembly.Common.Resources")]? (只需确保ResourceAssembly.Common.Resources是实际的程序集名称,而不是项目名称或命名空间。)

  2. 客户端项目是否引用了ResourceAssembly.Common.Resources程序集或项目?

  3. 是否有可能在GAC中安装ResourceAssembly.Common.Resources的副本? (如果它存在于本地和GAC中,则可能导致短名称冲突。)

  4. “Images”文件夹是ResourceAssembly.Common.Resources项目的直接子项吗? (听起来像是,但只是确定。)

  5. image.png的Build Action属性是否设为Resource? (它应该是默认的,但你永远不会知道。)

  6. ResourceAssembly.Common.Resources引用任何未包含在客户端项目中的程序集吗? (XAML中的包URI在编译时IIRC未解析,这意味着传递依赖性不会被带入项目。)

  7. 如果它不是其中之一那么它就超出了我。 :)