我对包装符号有疑问。
我正在尝试从另一个资源程序集访问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
答案 0 :(得分:5)
当我开始使用包符号时,我遇到了类似的问题,但我现在不记得具体问题是什么。你的包装符号看起来与我的相同,所以我会验证每个部分并确保它是正确的:
资源程序集的AssemblyInfo.cs是否包含:[assembly: AssemblyTitle("ResourceAssembly.Common.Resources")]
? (只需确保ResourceAssembly.Common.Resources
是实际的程序集名称,而不是项目名称或命名空间。)
客户端项目是否引用了ResourceAssembly.Common.Resources
程序集或项目?
是否有可能在GAC中安装ResourceAssembly.Common.Resources
的副本? (如果它存在于本地和GAC中,则可能导致短名称冲突。)
“Images”文件夹是ResourceAssembly.Common.Resources项目的直接子项吗? (听起来像是,但只是确定。)
image.png的Build Action
属性是否设为Resource
? (它应该是默认的,但你永远不会知道。)
ResourceAssembly.Common.Resources
引用任何未包含在客户端项目中的程序集吗? (XAML中的包URI在编译时IIRC未解析,这意味着传递依赖性不会被带入项目。)
如果它不是其中之一那么它就超出了我。 :)