2014-03-07 35 views
2

我有一個長時間運行的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完全更新。 在網絡共享上運行的項目 - 我這樣說是因爲其他人通過在本地運行項目解決了這個問題,但對我而言,這不是一個選項。

回答

1

如果你在你的項目中使用某種依賴注入,那麼如果某個資源是在一個沒有消耗項目中的直接引用的程序集中定義的,那麼VS就不會理解某些資源來自哪裏。

我一直都在看這個(我使用Prism),並且正如您發現的那樣,資源在運行時解析成功。

+0

謝謝你,但所有來源都包含在一個組件中 - 沒有外部項目。而這只是開始發生,並且正在變得更糟。但是,爲什麼在構建錯誤的情況下,項目是否能夠正常工作,以及包含所謂錯誤的區域的功能是否完美? –

+0

好,值得一試。所以當你說構建錯誤,你需要你做一個'重建所有'和構建失敗?或者只是在查看代碼時,「錯誤列表」窗口顯示錯誤?我用Prism得到後者,但那些'錯誤'實際上並不是阻止構建成功的錯誤。對不起,我無法提供更多幫助。 – Mashton

+0

是的,錯誤列表顯示錯誤,但應用程序仍然構建,這似乎是一個矛盾。這意味着XAML設計師無法使用。這幾乎是一種感染 - 越來越多的表格抱怨同樣的問題。 –

4

我剛打過這場戰鬥。除此之外,當我刪除對我創建的自定義屬性屬性的引用時,即使設計視圖沒問題,我也會彈出一個「設計視圖不適用於X64和AMD目標」的問題。

我在網上發現一個鏈接,說從x64切換到x86目標,然後回來做伎倆。令人驚訝的是,工作。

+0

前段時間我曾嘗試過,但沒有奏效。我發現唯一的解決方案是將項目移動到本地驅動器。由於這樣做我沒有遇到過這個問題。 –

+0

聖弗裏克 - 我一直在這一整個早晨作戰!你的帖子,Abdunnoer是解決方案。很有趣的行爲Visual Studio(2012旗艦版)! –

相關問題