I looked for the answers here and there with no luck, so I decided to ask out.
I want to implement openalpr (open source Automatic License Plate Recognition)
repository on my own PC and I am following this video to accomplish the task. I have done all the steps he did and at the end, when I tried to build it but, in one of the .cs code there is CS0246 error that says:
Error CS0246 The type or namespace name 'AlprNet' could not be found (are you missing a using directive or an assembly reference?) number_plate c:\users\sohib\documents\visual studio 2015\Projects\number_plate\number_plate\Form1.cs
I could only find AlprNet in my D:\Projects\plate_recognition\openalpr-master\src\bindings\csharp\AlprNetTest and it is in .csproj format.
AlprNet is not in .dll format like other references so I cannot reference it in References.
I found some say that it might be because of different versions of .NET Framework platforms. I almost did nothing to check that, because I don't think it's related to .NET
In my mere opinion I should link that AlprNet.csproj to get its content, but I'm not sure. If someone can help get around this issue, I'd be very grateful.
If it's not a .net Assembly (dll) that's referenced and it's not a nuget package, then check that the code isn't expecting the Assembly to already be present in the Global Assembly Cache (If you have access to another developer machine where this works, this is easy to check).
Failing that, adding the .csproj to your .sln and then referencing it sounds like the way to go (provided you have access to that of course!).
I've been attempting to connect a MySql database to my project in Visual Studio 2015. In order to connect it in the Server Explorer, I had to download and add the reference to my project. Easy peasy.
Then, when I attempted to follow this tutorial, I get this error message:
The type or namespace name 'MySqlConnection' could not be found (are you missing a using directive or an assembly reference?)
I have indeed added the assembly reference (I believe, if I understand the term correctly), by checking the MySql.Data in the References/Extension.
Am I using the wrong MySql.Data? How do I know which one? I've read that perhaps it can have to do with mixed versions of .NET Frameworks, but honestly I don't know how to check.
I'm an up-and-coming programmer, who before this, had only worked with static, hard-coded webpages, and never used databases in a project before.
EDIT: I have indeed added the 'using MySql.Data.MySqlClient to the same class file as I am attempting to use it in.
More information. What is displayed when I hover over the Data in MySql.Data.MySqlClient in the 'using' statements.
Your first screenshot shows the quickactions window suggesting that you use a fully qualified name, for the type, because it cannot determine where the type comes from.
Search to make sure that MySql.Data is not used, as a namespace, elsewhere in your project, so that it does not collide with the MySql.Data namespace from the dll you are referencing.
In the C# VS2010 Solution I'm working in, there is a namespace called: EBI.Core.Base.Constant.EBISystem
That namespace's DLL is referenced as a Project (i.e. a project native to the solution,) in a different project in the same solution.
VS shows error saying that: The type of namespace Base does not exist. This is true, it does not exist because the actual name is the full namespace name above.
When I remove the project reference and add it back in, the error goes away and the full namespace name is recognized, but as soon as I build, the error comes back. Same thing happens if I close the solution and re-open it, no error, until I build.
This error seems to be happening only on my dev machine and no one else's with the same exact solution.
I looked at my GAC and there's no stray or missing dll there. I have closed and restarted the solution, I have restarted my machine to no avail. Also checked project build dependencies and they are correct. Unloaded and released the project, still the same thing.
Both the project being worked on and the referenced project are .Net 3.5.
Wondering if anyone has any suggestions. I've tried everything here: Getting "type or namespace name could not be found" but everything seems ok?
Use the same target framework version for your project and the library "EBI.Core.Base.Constant.EBISystem"
I have downloaded the irrKlang sound library, and since I'm using C# with sharpdevelop I have:
a) Added a reference to the DLL such that irrKlang.NET4 appears under References in the project tree.
b) Added the statement 'using IrrKlang.NET4;' to my code, which corresponds exactly to one of the example programs provided.
When I try to compile, SD tells me that the type or namespace name NET4 doesn't exist (are you missing an assembly reference).
If I change the using statement to 'using IrrKlang;' as (rather confusingly) appears in another .net example program, my application compiles but I get the runtime error "Error: Could not load file or assembly 'irrKlang.NET4, Version .... or one of it's dependencies. An attempt was made to load a program with an incorrect format".
What is going on here? Any ideas?
Thanks in advance
It looks like that assembly was not constructed properly
instead of
using irrKlang.Net4;
change it to
using irrKlang;
and all is well :)
IrrKlang comes preloaded with various versions for different .NET distributions - both x32 an x64. Make sure you're using the correct one, also set your target build for the corresponding .NET version you're using...
And yes, you should be doing :
using IrrKlang;
.just an idea...
This question already has answers here:
Getting "type or namespace name could not be found" but everything seems ok?
(44 answers)
Closed 8 years ago.
I have a C# solution with several projects in Visual Studio 2010.
One is a test project (I'll call it "PrjTest"), the other is a Windows Forms Application project (I'll call it "PrjForm"). There is also a third project referenced by PrjForm, which it is able to reference and use successfully.
PrjForm references PrjTest, and PrjForm has a class with a using statement:
using PrjTest;
Reference has been correctly added
using statement is correctly in place
Spelling is correct
PrjTest builds successfully
PrjForm almost builds, but breaks on the using PrjTest; line with the error:
The type or namespace name 'PrjTest' could not be found (are you missing a using directive or an assembly reference?)
I've tried the following to resolve this:
Removed Resharper (since Resharper had no trouble recognizing the referenced project, I thought it might be worth a shot)
Removed and re-added the reference and using statement
Recreated PrjForm from scratch
PrjForm currently resides inside the PrjTest folder, I tried moving it to an outside folder
Loaded the solution on a different computer with a fresh copy of VS 2010
I have done my homework and spent far too long looking for an answer online, none of the solutions has helped yet.
What else could I try?
See this question.
Turns out this was a client profiling issue.
PrjForm was set to ".Net Framework 4 Client Profile"
I changed it to ".Net Framework 4", and now I have a successful build.
Thanks everyone!
I guess it figures that after all that time spent searching online, I find the solution minutes after posting, I guess the trick is knowing the right question to ask..
In my case I had:
Referenced DLL : .NET 4.5
Project : .NET 4.0
Because of the above mismatch, the 4.0 project couldn't see inside the namespace of the 4.5 .DLL. I recompiled the .DLL to target .NET 4.0 and I was fine.
PrjForm was set to ".Net Framework 4 Client Profile" I changed it to ".Net Framework 4", and now I have a successful build.
This worked for me too. Thanks a lot. I was trying an RDF example for dotNet where in I downloaded kit from dotnetrdf.
NET4 Client Profile:
Always target NET4 Client Profile for all your client desktop applications (including Windows Forms and WPF apps).
NET4 Full framework:
Target NET4 Full only if the features or assemblies that your app need are not included in the Client Profile. This includes:
If you are building Server apps, Such as:
ASP.Net apps
Server-side ASMX based web services
If you use legacy client scenarios, Such as:
o Use System.Data.OracleClient.dll which is deprecated in NET4 and not included in the Client Profile.
Use legacy Windows Workflow
Foundation 3.0 or 3.5 (WF3.0 , WF3.5)
If you targeting developer scenarios and need tool such as MSBuild or need access to design assemblies such as System.Design.dll
Another thing that can cause this error is having NuGet packages that have been built with a newer version of .NET.
The original error:
frmTestPlanSelector.cs(11,7): error CS0246: The type or namespace name 'DatabaseManager'
could not be found (are you missing a using directive or an assembly reference?)
Further up in the log I found this:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3275: The primary reference "[redacted]\DatabaseManager\bin\Release\DatabaseManager.dll" could not be resolved because it has an indirect dependency on the assembly "System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" which was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".
The solution was to re-install the NuGet packages:
http://docs.nuget.org/docs/workflows/reinstalling-packages
I solved mine because the other project was coded with .NET 4.5 and the other one was coded 4.0
The using statement refers to a namespace, not a project.
Make sure that you have the appropriately named namespace in your referenced project:
namespace PrjTest
{
public class Foo
{
// etc...
}
}
Read more about namespaces on MSDN:
Using Namespaces
I encountered this issue it turned out to be.
Project B references Project A.
Project A compiled as A.dll (assembly name = A).
Project B compiled as A.dll (assembly name A).
Visual Studio 2010 wasn't catching this. Resharper was okay, but wouldn't compile. WinForms designer gave misleading error message saying likely resulting from incompatbile platform targets.
The solution, after a painful day, was to make sure assemblies don't have same name.
It is also possible, that the referenced projects targets .NET 4.0, while the Console App Project targets .NET 4.0 Client Library.
While it might not have been related to this particular case, I think someone else can find this information useful.
The compiled dll should have public Class.
I had the same issue. The target frameworks were fine for me. Still it was not working.
I installed VS2010 sp1, and did a "Rebuild" on the PrjTest. Then it started working for me.
Other problem that might be causing such behavior are build configurations.
I had two projects with configurations set to be built to specific folders.
Like Debug and Any CPU and in second it was Debug and x86.
What I did I went to Solution->Context menu->Properties->Configuration properties->Configuration and I set all my projects to use same configurations Debug and x86 and also checked Build tick mark.
Then projects started to build correctly and were able to see namespaces.
Changing the framework to
.NET Framework 4 Client Profile
did the job for me.
For COM/ActiveX references, VS 2012 will show this error right on using statement. Which is quite funny, since it's saying that may be you are missing a using statement.
To solve this: register the actual COM/ActiveX dll even if it's in the neighbor project, and add a reference through COM channel, not project channel. It will add Interop.ProjectName instead of ProjectName as a reference and this solves this strange bug.
If your project (PrjTest) does not expose any public types within the PrjTest namespace, it will cause that error.
Does the project (PrjTest) include any classes or types in the "PrjTest" namespace which are public?
just changed Application's target framework to ".Net Framework 4".
And error got Disappeared.
good luck;
:D
check your Project Properties, your Reference Paths should be empty like this:
Regards