2009-05-27 25 views
2

在Visual Studio中,當我將一個項目中的文件鏈接到下一個項目時,嘗試加載鏈接資源時出現以下錯誤。這隻有當鏈接文件位於文件夾內時纔會發生。文件夾結構中的鏈接文件

錯誤:

消息=「 '包://應用:,,,/PROJECTNAME;組件/資源字典的.xaml' 值不能被分配給對象的屬性; '源' 'System.Windows.SharedResourceDictionary' 。

例子:

Project1.Resources 
      | 
      |--> MergedResourceDictionary.xaml 
      |--> ProjectResourceDictionary.xaml 
      |--> Folder 
        | 
        |--> SharedResourceDictionary.xaml   


Project2.Resources 
      | 
      |--> MergedResourceDictionary.xaml 
      |--> ProjectResourceDictionary.xaml 
      |--> Folder 
        | 
        |--> SharedResourceDictionary.xaml **LINKED** 

如果MergedResourceDictionary.xaml我們合併這些字典,那麼「SharedResourceDictionary.xaml Project2中不會被發現。但是,如果SharedResourceDictionary.xaml鏈接到項目的根目錄,則會在運行時找到資源。

**注意:在project2的「obj/debug」中,所有鏈接的資源位於根目錄,而在project1中,資源保留在項目中分配的文件夾結構中。

重新創建步驟 這發生在運行時。步驟如下(使用原始文章中列出的文件)。

1)在PROJECT1創建SharedResourceDictionary,內「文件夾」 2)在Project2中創建「文件夾」,然後將文件夾 3)構建和運行的應用程序 4)應用程序將不能夠內添加「作爲鏈接」 SharedResourceDictionary找到SharedResourceDictionary.xaml,因爲它駐留在文件夾中。從文件夾結構中移除文件可以很好地作爲鏈接文件。

我明白任何幫助,

克里斯

回答

1

我花了一段時間對這個問題Microsoft支持工作。這是MsBuild的一個錯誤,並且可能會成爲他們將來修復的東西。

我已經找到了任何人有興趣解決方法:

創建一個運行LocBaml並創建您需要的文件夾結構,並將在正確的文件夾中的文件PostBuild事件。

希望這會有所幫助。