1

我有一个关于包装符号的问题。

我正在尝试从另一个资源程序集访问 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.

我想我错过了一些简单的关键字或一些简单的语法错误,或者像我一直遇到的问题一样,但任何帮助都是无价的。

谢谢!阿努伊

4

1 回答 1

5

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

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

  2. 客户项目是否有对ResourceAssembly.Common.Resources程序集或项目的引用?

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

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

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

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

如果它不是其中之一,那么它超出了我的范围。:)

于 2009-08-26T18:10:48.560 回答