我有一個長時間運行的WPF應用程序,突然間,XAML設計器(和錯誤列表)開始抱怨在命名空間別名中找不到某些類。例如,所有轉換器都存儲在MyNameSpace.Converters中,但是,無論何時打開包含該名稱空間內轉換器的引用的表單,設計器都會報告標記錯誤,並且項目構建也會鏡像這些錯誤。但是這些轉換器ARE在這個命名空間內 - 轉換器在yonks中沒有改變:項目運行良好,並且這些轉換器本身工作正常 - 如果它們不是這樣,它們將非常明顯。在設計和構建階段,報告了這些錯誤:如果出現構建錯誤,爲什麼項目會運行?WPF <class>在命名空間中不存在「clr-namespace」
我已經嘗試清理項目,關閉VS,重新啓動PC,但沒有運氣。
一個實例錯誤消息:
The name 'FPriorityBrushConverter' does not exist in the namespace 'clr-namespace:PracticonCASMgr.Converters'
XAML:
xmlns:converters="clr-namespace:PracticonCASMgr.Converters"
...
<Grid.Resources>
<converters:FPriorityBrushConverter x:Key="FPriorityBrush"/>
...
打開轉換器源的.cs
namespace PracticonCASMgr.Converters
public class FPriorityBrushConverter : IValueConverter
{...
如果我做出改變爲這些類型之一的行爲轉換器(它會返回一個顏色btw),以便BLUE的畫筆被返回,所有使用此轉換器的區域都會這樣做出現在BLUE中 - 所以轉換器工作正常。然而,設計師堅持抱怨Markup錯誤。
尋找解決方案,我發現其他人遇到這種情況只能發現關閉VS,重新啓動,清理,三次點擊手指解決了這個問題,但沒有一個適用於我。
完全困惑,希望有人能夠對此有所瞭解。
謝謝
p.s.在寫這篇文章的時候,一位同事剛剛告訴我,該項目現在抱怨說現在無法找到XAML中引用的用戶控件:但儘管存在構建錯誤並且用戶控件(顯然已消失),該項目仍能正常運行。
Visual Studio 2012完全更新。 在網絡共享上運行的項目 - 我這樣說是因爲其他人通過在本地運行項目解決了這個問題,但對我而言,這不是一個選項。
謝謝你,但所有來源都包含在一個組件中 - 沒有外部項目。而這只是開始發生,並且正在變得更糟。但是,爲什麼在構建錯誤的情況下,項目是否能夠正常工作,以及包含所謂錯誤的區域的功能是否完美? –
好,值得一試。所以當你說構建錯誤,你需要你做一個'重建所有'和構建失敗?或者只是在查看代碼時,「錯誤列表」窗口顯示錯誤?我用Prism得到後者,但那些'錯誤'實際上並不是阻止構建成功的錯誤。對不起,我無法提供更多幫助。 – Mashton
是的,錯誤列表顯示錯誤,但應用程序仍然構建,這似乎是一個矛盾。這意味着XAML設計師無法使用。這幾乎是一種感染 - 越來越多的表格抱怨同樣的問題。 –