Getting “type or namespace name could not be found

2018-12-31 19:51发布

I'm getting a:

type or namespace name could not be found

error for a C# WPF app in VS2010. This area of code was compiling fine, but suddenly I'm getting this error. I've tried removing the Project Reference and the using statement, shutting VS2010 and restarting, but still I have this issue.

Any ideas why this might be occurring, where it seems like I'm doing the right thing re Reference & using statement?

I also noted in VS2010 that intellisense for that namespace is working ok, so it seems like VS2010 has the project reference and is seeing the namespace on one hand, but during compile doesn't see it?

30条回答
孤独寂梦人
2楼-- · 2018-12-31 20:51

I had the same issue. One night my project would compile the next morning ERRORS!.

I eventually found out that visual studio decided to "tweak" some of my references and point them elsewhere. for example:

System.ComponentModel.ISupportInitialize somehow became "blahblah.System.ComponentModel.ISupportInitialize"

Quite a rude thing for vs to do if you as me

查看更多
弹指情弦暗扣
3楼-- · 2018-12-31 20:52

In my case, I find the reference in the VisualStudio have a triangle, and a exclamation mark as this image,

then, I right click remove it, and add the dll reference correctly again, the problem was solved.

查看更多
心情的温度
4楼-- · 2018-12-31 20:52

In my case I had a file built by external dependency (xsd2code) and somehow its designer.cs files were not processed by VS correctly. Creating a new file in Visual Studio and pasting the code in it did the trick for me.

查看更多
伤终究还是伤i
5楼-- · 2018-12-31 20:53

I know this is kicking a dead horse but I had this error and the frameworks where fine. My problem was basically stating that an interface could not be found, yet it build and accessed just fine. So I got to thinking: "Why just this interface when others are working fine?"

It ended up that I was actually accessing a service using WCF with an endpoint's interface that was using Entity Version 6 and the rest of the projects were using version 5. Instead of using NuGet I simply copied the nuget packages to a local repository for reuse and listed them differently.

e.g. EntityFramework6.dll versus EntityFramework.dll.

I then added the references to the client project and poof, my error went away. I realize this is an edge case as most people will not mix versions of Entity Framework.

查看更多
高级女魔头
6楼-- · 2018-12-31 20:56

This can be the result of a .Net framework version incompatibility between two projects.

It can happen in two ways:

  1. a client profile project referencing a full framework project; or
  2. an older framework version targeting a newer framework version

For example it will happen when an application is set to target the .Net 4 Client Profile framework, and the project it references targets the full .Net 4 framework.

So to make that clearer:

  • Project A targets the Client Profile framework
  • Project A references Project B
  • Project B targets the full framework

The solution in this case is to either upgrade the framework target of the application (Project A), or downgrade the target of referenced assembly (Project B). It is okay for a full framework app to reference/consume a client profile framework assembly, but not the other way round (client profile cannot reference full framework targeted assembly).

Note that you can also get this error when you create a new project in VS2012 or VS2013 (which uses .Net 4.5 as the default framework) and:

  • the referencing project(s) use .Net 4.0 (this is common when you have migrated from VS2010 to VS2012 or VS2013 and you then add a new project)

  • the referenced projects use a greater version i.e. 4.5.1 or 4.5.3 (you've re-targeted your existing projects to the latest version, but VS still creates new projects targeting v4.5, and you then reference those older projects from the new project)

查看更多
冷夜・残月
7楼-- · 2018-12-31 20:56

We had a weird case of this that I just fixed in a solution. There was a hidden/whitespace character in front of a "using" statement in the main project. That project would build fine and the website worked fine, but the unit test project that referenced it could not be built.

查看更多
登录 后发表回答