文件夹结构中的链接文件

时间:2009-05-27 18:24:34

标签: visual-studio xaml msbuild

在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,因为它位于文件夹中。从文件夹结构中删除文件将作为链接文件正常工作。

我感谢任何帮助,

克里斯

1 个答案:

答案 0 :(得分:1)

我花了一些时间与Microsoft支持解决此问题。这是MsBuild的一个错误,并且怀疑他们将来会修复它们。

我找到了感兴趣的人的解决方法:

创建一个运行LocBaml的PostBuild事件,并创建所需的文件夹结构,并将文件放在正确的文件夹中。

希望这有帮助。