在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中的“Folder”中创建SharedResourceDictionary 2)在Project2中创建“Folder”,然后在文件夹中添加“as link”SharedResourceDictionary 3)构建并运行应用程序 4)应用程序将无法找到SharedResourceDictionary.xaml,因为它位于文件夹中。从文件夹结构中删除文件将作为链接文件正常工作。
我感谢任何帮助,
克里斯
答案 0 :(得分:1)
我花了一些时间与Microsoft支持解决此问题。这是MsBuild的一个错误,并且怀疑他们将来会修复它们。
我找到了感兴趣的人的解决方法:
创建一个运行LocBaml的PostBuild事件,并创建所需的文件夹结构,并将文件放在正确的文件夹中。
希望这有帮助。