13
votes

I've been researching for a while now trying to find a reason why the following would be occuring, but no solutions on StackOverflow or Google are able to help me.

I have a custom UserControl that is attempting to reference a namespace within the same project:

xmlns:my="clr-namespace:ColorPicker"

however when I compile I get the following error:

Undefined CLR namespace. The 'clr-namespace' URI refers to a namespace 'ColorPicker' that is not included in the assembly.

This is resulting in not being able to build my project or reference other custom controls within the xaml, generating these kinds of errors:

The type 'my:ColorSelector' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

I've attempted all the solutions given in these posts:

adding a custom namespace to xaml

WPF xmlns: The 'clr-namespace' URI refers to a namespace that is not included in the assembly

The 'clr-namespace' URI refers to a namespace that is not included in the assembly

Undefined CLR namespace

Also, just to be clear, I'm not getting any other errors about other files in this project, so it doesn't seem like it could be the result of other files not compiling.

UPDATE: A sample project that produces the error for me can be downloaded here: http://www.filefactory.com/file/28fbmhj3f4qj/n/ColorPicker_zip

3
Hard to say from this description. Can you share a small sample project that repros the error?Joe Castro
Are you sure the ColorPicker has the namespace as 'ColorPicker', have you tried adding the ;assembly=YourAssembly?Kevin DiTraglia
I have no issues sharing the actual project. Are you expecting a file or just a bunch of source? If the actual project, what's the fastest method to post on here?flamebaud
@flamebaud I often see users upload the entire solution to some free file sharing site online, and include the link in their question.Rachel
So you have a namespace called ColorPicker (because that sort of sounds like it could be a class name)? And in that namespace you have a class named ColorSelector? Finally the namespace ColorPicker is not nested under any other namespace?Tod

3 Answers

6
votes

Your first linked question has the answer. The answer is: you have to build the assembly containing the namespace and referenced classes/controls before you can reference it in .xaml. I commented out your xaml namespace declarations, then commented out the xaml elements from those namespaces, then commented out the C# code that broke as a result of those elements no longer being declared. In other words, I kept commenting till I could build successfully. Once the assembly built, I uncommented the xaml namespace declarations, then the elements. This gave an error about needing to use x:Name instead of Name on those elements, so I did so. Then uncommented the C# code and it builds.

1
votes

xmlns:my="clr-namespace:ColorPicker;assembly=ColorPicker".

This worked for me! It's faster and less annoying!

0
votes

I had to move mine to an external resource dictionary. I fixed my issue by changing:

<UserControl.Resources>
    <SHCL:GoodBadConverter x:Key="GoodBadConverter"/>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/StandardHelperClassLibrary;component/WPF/Dictionaries/WindowStylesDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

to

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/StandardHelperClassLibrary;component/WPF/Dictionaries/WindowStylesDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

where was moved to one of the resource dictionaries listed.