Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The name "XYZ" does not exist in the namespace "clr-namespace:ABC"

Tags:

c#

wpf

xaml

I was working on creating some markup extensions and started to get very weird VS behaviours. I have extracted and pinpointed the issue in the separate solution. Problem is that VS can't create a CLR object in XAML.

Here it is:

View:

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpfApplication4="clr-namespace:WpfApplication4">
    <Window.Resources>
        <wpfApplication4:Dog x:Key="doggy" />
    </Window.Resources>
    <Grid />
</Window>

Code behind:

using System.Windows;

namespace WpfApplication4
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

Dog class:

namespace WpfApplication4
{
    public class Dog
    {

    }
}

App.Xaml (no code in App.Xaml.cs):

<Application x:Class="WpfApplication4.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>

Project settings

Exception I am getting:

Error   1   The name "Dog" does not exist in the namespace "clr-namespace:WpfApplication4". \\hopr1\folders$\vxk\Documents\Visual Studio 2012\Projects\WpfApplication4\MainWindow.xaml  6   9   WpfApplication4

I am able to run solution, but designer fails with "Invalid Markup" error Any ideas?

Edit

I am running VS 2012 Update 2 The same solution work in VS 2012 Update 1

like image 613
Vitalij Avatar asked Apr 25 '13 13:04

Vitalij


3 Answers

For anyone coming across this now, BEFORE YOU DO ANYTHING ELSE... if you're certain your classes/namespaces are correct and rebuilding has not solved your problem:

Try restarting Visual Studio

That's it!

This appears to be a bug with Visual Studio 2012 (also appears to affect all other versions that support XAML development)


Update: If restarting Visual Studio doesn't work, reboot the entire PC.

Update: As mentioned in comments by @Dunk, if restarting Visual Studio doesn't work, try deleting the .suo file

like image 115
Jordan Avatar answered Nov 19 '22 19:11

Jordan


Your solution is running on a network share. .Net (and Visual Studio) applications can run into permission / access issues when running on a network share.

Copy your solution to a local drive (with full trust) and you should be fine.

It is possible to get a network drive working with full trust - you can find answers for this on StackOverflow and other places - but in my experience I keep running into obstacles when I do this, so try to avoid it unless it's absolutely critical to the problem at hand.

E.g. this question gives instructions about how to do this:

Give FullTrust to UNC share for Visual Studio 2012 and .Net 4.0

I've only ever tried this with VS2010 so (as indicated in the link) you might have better joy with 2012.

like image 40
GrahamMc Avatar answered Nov 19 '22 20:11

GrahamMc


I experienced the same issue, but my files are stored locally. My IValueConverter resides in a different assembly than the view using it. Even though VS2013 IntelliSense suggested the following, it wasn't working:

xmlns:conv="clr-namespace:MySharedAssembly.Converters"

After I explicitly added the assembly at the end, it worked:

xmlns:conv="clr-namespace:MySharedAssembly.Converters;assembly=MySharedAssembly"
like image 32
Wouter Avatar answered Nov 19 '22 20:11

Wouter