在VisualStudio中,当我将一个文件从一个项目链接到下一个项目时,当尝试加载链接的资源时,会出现以下错误。仅当链接的文件位于文件夹内时才会发生这种情况。
错误:
Message=“”pack://application:、、、、/projectName;组件/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中合并了这些词典,则在项目2中找不到“SharedResourceDictionary.xaml”。但是,如果SharedResourceDictionary.xaml链接到项目的根目录,则在运行时可以找到资源。
**注意:在project2的“obj/debug”中,所有链接的资源都位于根目录中,而在project1中,资源仍保留在项目中指定的文件夹结构中。
重新创建的步骤
1) 在项目1的“文件夹”中创建SharedResourceDictionary
2) 在项目2中创建“文件夹”,然后在文件夹中添加“作为链接”SharedResourceDictionary
3) 构建并运行应用程序
4) 应用程序将无法找到SharedResourceDictionary.xaml,因为它位于文件夹中。从文件夹结构中删除该文件可以作为链接文件正常工作。
我感谢你的帮助,
克里斯