“clr-namespace”URI指的是未包含在程序集中的命名空间

时间:2010-08-06 16:54:50

标签: c# .net wpf xaml converter

我正在尝试在我的XAML中包含一些转换值的类。但是,编译时出现以下错误:

  

未定义的CLR命名空间。 'clr-namespace'URI是指未包含在程序集中的名称空间'View.Summary.Converters'。(View \ View)

XAML出错:

xmlns:c="clr-namespace:View.Summary.Converters"

此外,这是我的转换类/命名空间的概述:

namespace View.Summary.Converters
{
    class CollapsedIfNegative : IValueConverter { }

    class VisibleIfNegative : IValueConverter { }

    class ErrorCodeToString : IValueConverter { }
}

我必须删除代码的内容,因为我正在处理的项目是高度机密的。

10 个答案:

答案 0 :(得分:54)

重建解决方案,错误就会消失。

答案 1 :(得分:38)

我刚刚通过将目标从x64更改为x86来解决这个问题。 显然Visual Studio是32位进程,它无法加载64位程序集,如果你的程序集是针对x64平台而你添加了一些自定义控件,则visual studio无法加载它并抛出此消息。

答案 2 :(得分:18)

我弄清楚出了什么问题。虽然visual studio将此视为第一个错误,但我的编码确实存在其他错误,这些错误阻止了转换器的组装。因此,当VS去寻找装配时,它就不存在了。

答案 3 :(得分:12)

vs2008设计师的一些问题

这样做:

  1. 关闭设计师
  2. rebuild-all(Alt + B + R)解决方案
  3. 现在不会有任何错误。

答案 4 :(得分:10)

如果您引用外部项目,则必须指定项目参考中显示的程序集:

xmlns:mdls="clr-namespace:MyProject.Models;assembly=MyProject.Models"

答案 5 :(得分:8)

我能够重现您的问题:

我在.NET Framework 4.0中创建了一个简单的WF。重命名了xaml文件。作为重命名xaml文件的一部分,您必须在WorkflowInvoker对象上调用Invoke时手动重命名工作流运行时名称。我建立了这个项目。我收到错误“'clr-namespace'URI指的是程序集中未包含的名称空间'System'。”

我如何解决它:

我打开项目属性页面。出于某种原因,目标框架从.NET framework 4.0切换到4.0客户端版本。所以,我选择了.NET 4.0并重建了该项目。错误不再存在。

答案 6 :(得分:3)

检查您的构建配置是否已在当前(活动)构建配置中选择了用于构建的项目。

我在摆弄Build架构(从x86到x64)之后遇到了这个问题,主要的wpf项目已被取消选择。

答案 7 :(得分:2)

我在C#WPF项目中遇到过这个问题。 当您在项目期间使用任何类型的错误关闭项目时,甚至在XAML中的相关命名空间中,似乎都会生成它。

解决方法是修复所有.CS文件(或排除有问题的XAML / CS文件)以获得正在运行的版本重建并运行。

我花了将近3个小时才发现设计师似乎正在运行的Debug版本必定是错误的。这就是为什么在很多情况下人们使用Rebuild项目解决了这个问题,但是如果你在项目中存在代码错误,那么问题将无法自行解决,因为Rebuild无法完成并且不会替换设计器支持的版本。

希望这有帮助!

答案 8 :(得分:1)

Visual Studio不断恢复奇数程序集文件路径。只需删除它所引用的实际参考文件,然后将其添加到项目中

答案 9 :(得分:0)

我有同样的错误。但显然,这只是因为我试图建立的解决方案的路径。 我的路径/目录/文件夹名称包含一些空格。