命名空间“clr-namespace:AB”中不存在“XY”

时间:2016-07-26 08:49:59

标签: .net wpf visual-studio

VisualStudio让我误解了这两个错误消息:

  

名称“SeverityToColorConverter”在命名空间“clr-namespace:MYNAMESPACE”中不存在。

  

名称“ReadOnlyTextBoxLineExtendedUnit”在名称空间“clr-namespace:MYNAMESPACE”中不存在。

我的应用程序的顶层有一个Styles.xaml。

简化为最小化,如下所示:

<select ng-init="funcName= options[0]" ng-model="ctrl.itemSelected" ng-change="ctrl.searchItem()">
    <option ng-repeat="item in ctrl.items" value="{{ctrl.items.indexOf(item)}}">{{item}}</option>
</select>

两者,<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MYNAMESPACE"> <local:SeverityToColorConverter x:Key="SeverityToColorConverter" /> <local:SeverityToImageSourceConverter x:Key="SeverityToImageSourceConverter" /> <Style TargetType="local:ReadOnlyTextBoxLineExtendedUnit" BasedOn="{StaticResource ErrProvErrorTemplateStyle}" /> <Style TargetType="local:TextBoxLine" BasedOn="{StaticResource ErrProvErrorTemplateStyle}" /> </ResourceDictionary> ReadOnlyTextBoxLineExtendedUnit都在完全相同的目录中。在他们的.xaml.vb代码中没有指定名称空间。然而,VS似乎只发现了后两者。这怎么可能呢? 转换器也是如此。有些是公认的,同样不是。 这里非常重要的是对象浏览器找到所有这些对象。

也许重要的是要提到我有一个WinForms应用程序,我使用MS的兼容性工具慢慢转换为WPF。现在我完全改为WPF基础应用程序,并将托管一些剩余的WinForms。要执行此任务,我手动将所有文件重新导入到新应用程序(可能会有更好的解决方案......)。 所以我确信我的代码应该可行。它必须是一些VS废话...或者我不理解的新WPF主机的一些问题......

是的,我尝试了切换到x86 / x64的所有肮脏技巧。它解决了一些问题,但仍然存在。

祝福 Yatekii

2 个答案:

答案 0 :(得分:1)

经过几个小时的努力,尝试重新启动,切换x86 / x64,清理项目等。我发现&#34; Clean&#34;你的Visual Studio项目并不意味着干净,而是&#34;删除你的exe&#34;。同样适用于重建。仅检查EXE。程序集,目标文件,自动生成的设计器文件,一切都停留在那里并且保持不变。

最后,删除obj和bin文件夹就像魅力一样。 没有语法错误,只是Visual Studio没有意识到这一点:)

答案 1 :(得分:0)

我遇到了同样的问题。我重新启动了Visual Studio。问题消失了。