Expression Blend:获取错误“XXX”在名称空间“XXX”中不存在,但在VS2008中不存在

时间:2009-11-30 18:25:04

标签: expression-blend expression-blend-3 expression-blend-4

我正在尝试使用Blend 3.0来编辑包含一些WPF控件的项目。该项目已经从Visual Studio 2008编译并运行良好。

然而,在Blend中,我遇到了一些毫无意义的神秘错误:

例如,我有一个派生自Control的类:

namespace Company.WPFControls.SearchTextBox
{
    public class SearchTextBox : Control
    {
        ...
    }
}

我尝试在资源中,在同一个程序集中使用它来分配样式:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:Company.WPFControls.SearchTextBox" 

    <Style TargetType="{x:Type local:SearchTextBox}">
        ...
    </Style>
</ResourceDictionary>

我在Blend中收到以下错误:

  

名称“SearchTextBox”没有   存在于命名空间中   “CLR-名称空间:Company.WPFControls.SearchTextBox”。

我已尝试通过添加;assembly=Company.WPFControls来指定程序集名称,但它不会删除错误。

有没有办法解决这个问题,或者至少找出问题的来源?

5 个答案:

答案 0 :(得分:30)

我在Windows Vista 64上遇到与Blend 2相同的问题。

我通常在VS2008中编译我的解决方案,在我的所有项目中都有一个“Debug-x86”目标,因此它与其他一些32位项目兼容。

看起来Blend喜欢“Debug - Any CPU”目标。 我基本上改变了我的配置管理器,以便它针对任何CPU平台而不是x86。

因此...

  • 在Blend和VS2008中打开您的解决方案
  • 在VS2008中,选择菜单Build - &gt; 配置管理器
  • 确保您的解决方案 配置有一个“调试 - 任何CPU” 适用于所有项目
  • 在VS2008中编译
  • tadaaaa 您的混合项目应该更新并删除这些错误...... 好吧,它为我做了

我做了相反的事情以验证它是否真的那样,而且似乎是......我只是将解决方案更改回Debug - x86,清理了所有内容,然后重新编译,我仍然回复了错误“是吗?不存在[...]“

至于“为什么?”......我不知道,但至少它现在有用了!

答案 1 :(得分:16)

问题出在Blend程序集搜索路径中。默认情况下,它会在文件夹“bin \ Debug”中的程序集中搜索类!但是如果你在项目配置目标x86中设置,那么你的输出路径将是“bin \ x86 \ Debug”。因此,您需要将visual studio中的输出路径更改为“bin \ Debug”,Blend将找到您的所有类!

答案 2 :(得分:13)

我认为Blend使用项目文件中定义的默认配置/平台。您应该可以通过使用文本文件进行编辑来解决此问题。如果您查看.csproj文件,您应该看到如下内容:

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    ...

将AnyCPU更改为x86,它应该按照您期望的方式工作。

答案 3 :(得分:1)

您还可以通过将所有项目的输出路径更改为bin\Debug而不是bin\x86\Debug(发布版本相同)来修复此“任何CPU / x86”问题。

答案 4 :(得分:1)

我也有这样的错误。但对我来说,它有助于直接在Blend中重建项目,而无需使用Visual Studio。

对于那些不知道的人:您可以通过单击“项目” - >在菜单中的混合菜单中执行此操作“重建项目”。 至少在Blend 4中。