【发布时间】:2009-05-27 18:24:33
【问题描述】:
在 Visual Studio 中,当我将文件从一个项目链接到下一个项目时,尝试加载链接的资源时出现以下错误。仅当链接文件位于文件夹中时才会发生这种情况。
错误:
Message="'pack://application:,,,/projectName ;component/ResourceDictionary .xaml' 值不能分配给对象“System.Windows.SharedResourceDictionary”的属性“Source”。
例子:
Project1.Resources
|
|--> MergedResourceDictionary.xaml
|--> ProjectResourceDictionary.xaml
|--> Folder
|
|--> SharedResourceDictionary.xaml
Project2.Resources
|
|--> MergedResourceDictionary.xaml
|--> ProjectResourceDictionary.xaml
|--> Folder
|
|--> SharedResourceDictionary.xaml **LINKED**
如果我们在 MergedResourceDictionary.xaml 中合并了这些字典,则不会找到 Project2 中的“SharedResourceDictionary.xaml。但是,如果 SharedResourceDictionary.xaml 链接到项目的根目录,则在运行时找到资源。
**注意:在 project2 的“obj/debug”中,所有链接的资源都在根目录下,而在 project1 中,资源保留在项目中分配的文件夹结构中。
重建步骤 这发生在运行时。步骤如下(使用原帖中列出的文件)。
1) 在 Project1 中的“文件夹”中创建 SharedResourceDictionary 2) 在 Project2 中创建“文件夹”,然后在文件夹中添加“作为链接”SharedResourceDictionary 3)构建并运行应用程序 4) 应用程序将无法找到 SharedResourceDictionary.xaml,因为它位于文件夹中。从文件夹结构中删除文件将作为链接文件正常工作。
感谢您的帮助,
克里斯
【问题讨论】:
标签: visual-studio xaml msbuild