名称<...>在名称空间clr-namespace <...>中不存在

ard*_*dal 69 .net c# wpf xaml namespaces

我有一个小的WPF应用程序,用于编译就好但不再.我不能说它在哪一点停止建设.它有一天工作得很好,接下来不是.

这是项目结构:
在此输入图像描述
除了标准的.net dll之外,没有其他项目或外部引用.

这是发生问题的用户控件:

<UserControl x:Class="TimeRecorder.HistoryUserControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:TimeRecorder.ViewModel"
         xmlns:framework="clr-namespace:TimeRecorder.Framework"
         mc:Ignorable="d" Height="Auto" Width="Auto" Padding="5">
<UserControl.Resources>
    <local:HistoryViewModel x:Key="ViewModel"/>
    <framework:BoolToColorConverter x:Key="ColorConverter"/>
</UserControl.Resources>
<StackPanel DataContext="{StaticResource ViewModel}">
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误: http://i48.tinypic.com/5u1u8w.png

请注意,这不仅仅是截图中的一个文件,而是我在xaml中以类似方式在此项目的所有用户控件/窗口文件中添加的所有引用.

所以文件就在那里,文件中的命名空间是正确的,xaml文件中的命名空间/类名是(据我所知)是正确的.当我输入xaml时,我得到intellisense,因此它可以找到文件,但是在编译时没有.

其他帖子中最常见的解决方案是.net框架版本.目前,我的主要和测试项目都设置为.Net Framework 4.完整版不是客户端配置文件.

以下是我认为搞砸的事情: 在配置管理器中,两个项目都将其平台设置为任何CPU,但在尝试解决此问题时,我注意到主项目设置为x86,测试项目设置为Any中央处理器.所以我在配置管理器中为主项目手动添加了任何CPU.但老实说,我不知道我是否做得正确,或者即使我应该这样做.所以作为一个额外的问题,有没有办法可以将配置管理器重置为默认状态?对于主要问题,这有什么可说的吗?我不知道主项目是否总是设置为x86,或者我是否以某种方式将其更改为x86然后它就破坏了.如上所述,这个项目编译好了一段时间.

有什么建议?我会回答有关代码的更详细的问题,或者在你问他们的时候,而不是在这里漫无边际:)

gil*_* kr 116

每次它发生在我身上我只是重新启动视觉工作室,重新构建解决方案,它工作得很好..不能说为什么

  • 要添加一件事 - 只有当我以管理员权限重新启动VS时,项目才能成功构建.使用常规权限,即使重新启动和重新构建解决方案也没有帮助. (13认同)
  • 很遗憾看到这仍然没有在5年后解决.使用VS 2017存在同样的问题,同样的解决方案仍然有效! (8认同)
  • 它没有解决我的问题,甚至从管理权限开始。 (3认同)

小智 30

除了"命名空间中不存在"消息之外,我还从设计器那里得到一条消息,它无法显示x64和ARM目标的窗口.

我刚刚发现将构建切换到x86模式,执行重建解决方案,然后切换回x64模式,然后再次重建修复[两个]问题.

简单地重建x64解决方案什么也没做.

  • 还有一步.您必须重建为x86,然后在设计器中打开xaml.然后才回到x64. (5认同)
  • 我尝试重新启动 Visual Studio 然后重建,但仍然遇到相同的错误。@Jerry - 您的解决方案是在 VS2012 中对我有用的解决方案。 (2认同)

Leo*_*rey 11

这在Visual Studio 2012(Update 3)上对我有用.

  • 重新启动Visual Studio
  • 添加当前程序集到名称空间声明 xmlns:framework="clr-namespace:TimeRecorder.Framework;assembly=MyAssembly
  • Build - > Build Solution


jay*_*pes 10

我发现有帮助(特别是如果发生此错误App.xaml)是注释掉那些给你带来麻烦,重建然后取消注释的引用.认为它的作用是允许整个项目实际构建而不是在错误处停止构建.

从我可以收集的内容来看,应用程序正在尝试按特定顺序构建文件,因此App.xaml在引用中或者可能是引用中的任何其他类文件错误时,导致错误的文件未正确编译,因此它为什么没有找不到该命名空间中的文件.

  • 当您说:“应用程序正在尝试按特定顺序构建文件”时,您的想法是正确的。这让我查看了我的 `.csproj` 文件。首先是`App.xaml.cs`。然后我将它移到显示此错误的文件下,重建,错误消失了。谢谢! (3认同)

Joh*_*n C 9

重建您的解决方案(有时清理然后构建更好).然后查看你的错误列表,滚动到最底层,它很可能表示一个错误,它不允许你的程序集编译,而且XAML编译器很可能使用程序集的缓存版本,而不是新版本的程序集意味着要建立.


Cha*_*dru 7

我有类似的问题.就我而言,我必须做以下事情

  • 从xaml中删除引用标记(在此示例中<local:HistoryViewModel x:Key="ViewModel"/>)
  • 构建类(在此示例中包含HistoryViewModel类的文件)
  • 构建完成后,在xaml中添加引用标记
  • 再建一次

上述方法对我有用.


小智 6

对我有用的是: - 将解决方案配置从Debug切换到Release - 将配置从Release切换回Debug


小智 6

今天在使用 Visual Studio 2017 社区版时遇到了这个问题。尝试了这里的所有建议(重置 VS 2017、从 x64 更改为 x32,然后再返回等等)以及其他来源的建议,但均无济于事。智能感知知道一切都在那里,但我每次都遇到同样的错误。

不管怎样,我的修复结果非常简单……当你在这个问题上花了几个小时的时候,他们不总是这样吗!

基本上,我做了以下...

  1. 从 xaml 文件中删除有问题的代码(在我的例子中只有 3 行)
  2. 构建项目,以便您获得成功的构建
  3. 此时,布局神奇地出现在设计器窗口中,这是一个好兆头!
  4. 重新插入我在第 1 点中删除的代码,包括 xmlns: 条目
  5. 此时你不应该看到任何蓝色曲线......希望
  6. 再次构建项目

似乎通过成功构建,它必须重置 VS 和/或程序集中的“某些内容”。成功构建后,请尝试再次插入代码。