2014-03-24 21 views
8

創建一個新的WPF項目,稱爲:xmlnsError錯誤的WPF資源字典「大會沒有通過這個項目中引用」

增加提及PresentationFramework.Aero

添加此ResourceDictionaryApp.xaml

<ResourceDictionary Source="/PresentationFramework.Aero,Version=4.0.0.0,Culture=Neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL;component/themes/Aero.NormalColor.xaml"/> 

這樣做會顯示警告

Assembly 'PresentationFramework.Aero,Version=4.0.0.0,Culture=Neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL' is not referenced by this project 

我再次檢查,以確保該版本實際上是4.0.0.0和公鑰實際上31bf3856ad364e35是通過導航到C:\Windows\Microsoft.NET\assembly\GAC_MSIL\PresentationFramework.Aero以及從AppDomain.CurrentDomain.GetAssemblies();

看集信息檢查GAC在運行時有什麼辦法解決這個警告?這是一個後續問題WPF Windows 8 Compatability Issue

+0

您是否添加了對項目的引用?此DLL的常見位置是:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ WPF – Xcalibur37

+0

是的。這是我在問題中提到的第二步 - 手動添加它或從程序集中添加它是同樣的事情。 – Shaku

+0

我有類似的問題,通過將程序集添加到另一個項目然後構建它來解決它。在那之後問題消失了。 HTH – XAMlMAX

回答

2

通常,在使用程序集中的資源時,不需要指定程序集版本,區域性和關鍵字。下面的示例編譯時沒有任何警告:

<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/> 
+2

它確實編譯,爲true。 但它確實改變了一些東西,在我的特殊情況下,由此產生的WPF應用程序甚至在其他系統啓動時崩潰。 –

+0

偉大的解決方案,工作得很好。感謝一堆MattCat! – TripleAntigen

0

Apparently (MSDN Forums),有一個元數據唯一版本的Aero和正確的是在C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF。目前,我沒有任何方法檢查是否有任何.NET 4.5版本的類似問題/解決方案。