2013-01-18 73 views
13

我有一個合併資源字典App.xaml主要程序集,它包含來自單獨程序集的各種資源字典:Common和PresentationLayer。查找資源字典時發生錯誤

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/Common;component/Themes/Button.xaml"/> 
      <ResourceDictionary Source="/PresentationLayer;component/DataTemplates/AppointmentsDataTemplates.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

在運行時,資源字典中的樣式正確應用於控件。然而,在設計時的樣式不應用和Visual Studio 2012一直給以下錯誤:

An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml". 

和警告:

The resource "BannerButton" could not be resolved. 

我碰到this post但儘管設置生成操作問題仍然存在資源。另外,在Visual Studio 2010或Expression Blend 4下運行時,我沒有遇到這個問題。主程序集確實擁有對Common程序集的引用,並且我沒有更改Pack URI。

+0

你有沒有試過使用正常的相對路徑? –

+0

@DJ正常的相對路徑(資源字典在主程序集中)正常工作。 –

+0

@DJ實際上,Visual Studio不再抱怨錯誤,但設計師仍然不會應用樣式。 –

回答

6

這是Visual Studio 2012的一個已知問題。請參閱Microsoft Connect上的this link。在安裝VS2012 Update 1之後,我解決了這個問題。如果您認爲自己運行的是VS2012的最新版本,但仍然遇到此問題,請確保已應用此更新。我以爲我使用Windows Update進行了更新,但後來發現我不得不告訴VS2012應用更新。 VS2012之後做的一切都很好。

+2

我與程序集和項目(.NET 4客戶端配置文件和.NET非客戶端)之間的.NET版本不匹配。一旦把兩個版本放在同一個版本上,問題就消失了,正如Andagavar提供的「替代解決方案」鏈接中所述。 – MDaldoss

0

嘗試同樣在Window.Resources,請確保您使用的App.xaml的時候,不要忘記給構建選項更改爲頁面,您需要使用App.xaml中添加的命名空間。

0

如果您使用Visual Studio 2017,請嘗試重新啓動計算機。問題可能會得到解決。