expression-blendexpression-blend-3expression-blend-4

Expression Blend: Getting error "XXX" does not exist in the namespace "XXX", but not in VS2008


I am trying to use Blend 3.0 to edit a project that contains some WPF controls. This project already compiles and runs fine from Visual Studio 2008.

In Blend however, I'm getting mysterious errors that make no sense:

For example, I have a class that derives from Control :

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

And I try to use it in a resource, in the same assembly, to assign a style:

<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>

I get the following error in Blend:

The name "SearchTextBox" does not exist in the namespace "clr-namespace:Company.WPFControls.SearchTextBox".

I've tried specifying the assembly name, by adding ;assembly=Company.WPFControls but it doesn't remove the error.

Is there any way to fix this or at least figure out where the problem comes from?


Solution

  • I had the same problem with Blend 2, on a Windows Vista 64.

    I normally compile my solution in VS2008, with a "Debug - x86" target on all my projects, so that it's compatible with some other 32 bits-only projects.

    It looks like Blend loves the "Debug - Any CPU" targets. I basically changed my configuration manager so that it targets Any CPU platforms instead of x86.

    So...

    I did the opposite to verify if it was really that, and it seems yes... I simply reverted the solution changes back to Debug - x86, cleaned everything, and rebuilded, and I was still back with the error "Does not exist [...]"

    As for the "Why?"... I don't know, but at least it works now!