2011-06-06 33 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构建配置。