2011-06-06 35 views
6

我通過MVVM教程的工作,我有以下的代碼,寫在XAML:XAML XMLNS:本地C#

<Window x:Class="WPFMVVM.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WPFMVVM; assembly=WPFMVVM" 
    Title="MainWindow" Height="388" Width="545"> 

的的xmlns:本地線路抱怨說WPFMVVM組件未引用。雖然它是我工作的組件。

任何人都知道爲什麼?

感謝

回答

12

你不能在那裏有&空間,如果它是你在工作大會只是不指定assembly

xmlns:local="clr-namespace:WPFMVVM" 

assembly參數是用於引用的程序集。另請參閱MSDN article on XAML namespaces

如果引用的clr名稱空間在引用自定義類的應用程序代碼的相同程序集中定義,則可以省略程序集。或者,這種情況下的等效語法是指定assembly =,在等號​​後面沒有字符串標記。

+0

我仍然收到一個錯誤,說'必須爲不屬於該項目的XAML文件指定程序集?有任何想法嗎?謝謝。 – 2011-06-06 14:45:36

+0

它是否再次停止工作? (既然你刪除了你以前的評論) – 2011-06-06 14:49:32

+0

嗨,是的,它有。希望在你看到它之前我已經刪除了它。這仍然是同樣的問題。謝謝。 – 2011-06-06 14:51:13

4

不知道這是否有用,但我有同樣的問題,並設法修復它在兩個不同的項目。我右鍵單擊該項目並單擊構建。一旦構建完成,錯誤消失了。我不是xaml專家或任何其他人,但看着代碼,它說xmlns:myns =「clr-namespace:somethingorother」。如果它是一個clr命名空間,那麼它必須被編譯以便它存在。

2

xaml構建器中存在一個錯誤。 第一次嘗試構建時,失敗會導致不會創建debug \ obj中的所有請求文件。 在第二次構建時,更多文件在debug \ obj中創建,但不是所有需要用於xaml的文件。 如果你第三次構建,那麼應該在debug \ obj中的所有文件最終被創建,並且xaml將被編譯。

這就是爲什麼當您清理或重建解決方案時,問題再次出現,直到您構建/構建解決方案。

當命名空間與xaml在同一個程序集中時,這只是一個問題。如果命名空間位於另一個程序集中,並且另一個程序集存在,那麼您將獲得成功構建。如果其他程序集不存在,那麼顯然構建將失敗。

2

存在已知問題。 您正在使用64位機器。在開發過程中簡單地設置x86構建配置。