Problem with ambiguous classes in my project


N

Nathan Sokalski

I have several CustomControls that I have written for my project. However,
when I try to compile I recieve the following warning & errors:

Warning 32 Could not resolve this reference. Could not locate the assembly
"nathansokalski_com_test, Version=1.0.0.0, Culture=neutral,
processorArchitecture=MSIL". Check to make sure the assembly exists on disk.
If this reference is required by your code, you may get compilation errors.
nathansokalski_com_test

I receive the following error for all of my classes/CustomControls:

Error 33 'Menu' is ambiguous in the namespace 'nathansokalski_com_test'.

All of my classes/CustomControls are in the same Project, and are therefore
are in the same assembly. Why is this happening? Is there some way to find
out what the other class each of these is ambiguous with is?
 
Ad

Advertisements

J

Just Me

check that the reference has not got a warning mark near it. Check the path
for the reference refers to the correct dll and is present where it should
be.

Check that ur imports/using statements are correct.
 
N

Nathan Sokalski

The reference does not have a warning mark, and the path does refer to the
correct dll. The dll is the same dll that I am compiling, because the
controls are created in *.vb files in that dll. It almost feels like two
copies of the same dll are being used at the same time. Any other ideas?
Thanks.
 
T

Tom Shelton

I have several CustomControls that I have written for my project. However,
when I try to compile I recieve the following warning & errors:

Warning 32 Could not resolve this reference. Could not locate the assembly
"nathansokalski_com_test, Version=1.0.0.0, Culture=neutral,
processorArchitecture=MSIL". Check to make sure the assembly exists on disk.
If this reference is required by your code, you may get compilation errors.
nathansokalski_com_test

I receive the following error for all of my classes/CustomControls:

Error 33 'Menu' is ambiguous in the namespace 'nathansokalski_com_test'.

Well, the problem is most likely that you have a class called menu, and
have an Imports System.Windows.Forms in the file. In those cases, the
compiler can't tell if you mean System.Windows.Forms.Menu or
nathansokalski_com_test.Menu.

To fix it you may have to fully qualify all the names... In other words,
instead of:

Dim m as menu

You might need to to say:

dim m as nathansokalaski_com_test.Menu

HTH
 
N

Nathan Sokalski

I do not have an

Imports System.Windows.Forms

statement anywhere in my application, or anything else from the
System.Windows namespace (my application is an ASP.NET application, so I do
not need anything from this namespace). I have also tried using the fully
qualified names by adding nathansokalski_com_test. to the beginning, but the
error remains the same, except the whole fully qualified name is underlined
as an error, but the error message remains the same.
 
C

Ciaran O'Donnell

Check you don't have a control called "Menu" on a page (i.e id="Menu") and a
variable called Menu in the code behind.

This will be a name class as the page and codebehind are compiled into one
class.

HTH

--


Ciaran O'Donnell
There are 10 types of people in this world. Those that understand binary and
those that don't
 
Ad

Advertisements

N

Nathan Sokalski

None of my controls have an ID that is the same as the name of any of my
classes. I tried adding a namespace

Namespace NathanSokalski
End Namespace

And modified the following line in my web.config:

<add tagPrefix="NJS" assembly="nathansokalski_com_test"
namespace="nathansokalski_com_test.NathanSokalski"/>

The following now happens:

1. I am able to use the controls in the *.aspx, *.ascx, *.master, etc. files

2. The namespaces nathansokalski_com_test and NathanSokalski are listed when
entering code, but my classes are not listed as classes in NathanSokalski

3. The warnings/errors are as follows:

Warning: Could not resolve this reference. Could not locate the assembly
"nathansokalski_com_test, Version=1.0.0.0, Culture=neutral,
processorArchitecture=MSIL". Check to make sure the assembly exists on disk.
If this reference is required by your code, you may get compilation errors.

Error: 'Transparency' is ambiguous in the namespace
'nathansokalski_com_test.NathanSokalski'.

I receive the error above for all my classes/customcontrols, even though
they are fully qualified names. The only real change made by the namespace
is that there are no errors in the *.aspx files, but there are still errors
when using the classes in the *.aspx.vb files. But now that I have added a
namespace, I know that none of my classes/customcontrols are ambiguous with
anything built into ASP.NET. What could they possibly be ambiguous with, and
what can I do to fix this? Thanks.
 
C

Coskun SUNALI [MVP]

Hi,

Tom is right. There are build in classes called "Menu" in .NET Framework
libraries. For example System.Web.UI.WebControls is an another namespace
that contains a class named "Menu".

It is better to declare your own Menu class with namespace directives, eg:
nathansokalski_com_test.Menu

--
All the best,
Coskun SUNALI
MVP ASP/ASP.NET
http://sunali.com
http://www.propeople.dk
 
N

Nathan Sokalski

I have tried adding the following namespace for all my classes:

Namespace NathanSokalski
End Namespace

And modified the following line in the <controls> section of my web.config:

<add tagPrefix="NJS" assembly="nathansokalski_com_test"
namespace="nathansokalski_com_test.NathanSokalski"/>

The following now happens:

1. I am able to use the controls in the *.aspx, *.ascx, *.master, etc. files

2. The namespaces nathansokalski_com_test and NathanSokalski are listed when
entering code in *.vb files, but my classes are not listed as classes in
NathanSokalski

3. The warnings/errors are as follows:

Warning: Could not resolve this reference. Could not locate the assembly
"nathansokalski_com_test, Version=1.0.0.0, Culture=neutral,
processorArchitecture=MSIL". Check to make sure the assembly exists on disk.
If this reference is required by your code, you may get compilation errors.

Error: 'Transparency' is ambiguous in the namespace
'nathansokalski_com_test.NathanSokalski'.

I receive the error above for all my classes/customcontrols, even though
they are fully qualified names. The only real change made by the namespace
is that there are no errors in the *.aspx files, but there are still errors
when using the classes in the *.aspx.vb files. But now that I have added a
namespace, I know that none of my classes/customcontrols are ambiguous with
anything built into ASP.NET. What could they possibly be ambiguous with, and
what can I do to fix this? Thanks.
 
C

Coskun SUNALI [MVP]

Hi,

"Error: 'Transparency' is ambiguous in the namespace
'nathansokalski_com_test.NathanSokalski'."

What I understand from this warning/exception is that you have 2
"Transparency" in "nathansokalski_com_test.NathanSokalski" namespace. Could
you check that?

--
All the best,
Coskun SUNALI
MVP ASP/ASP.NET
http://sunali.com
http://www.propeople.dk


Nathan Sokalski said:
I have tried adding the following namespace for all my classes:

Namespace NathanSokalski
End Namespace

And modified the following line in the <controls> section of my
web.config:

<add tagPrefix="NJS" assembly="nathansokalski_com_test"
namespace="nathansokalski_com_test.NathanSokalski"/>

The following now happens:

1. I am able to use the controls in the *.aspx, *.ascx, *.master, etc.
files

2. The namespaces nathansokalski_com_test and NathanSokalski are listed
when entering code in *.vb files, but my classes are not listed as classes
in NathanSokalski

3. The warnings/errors are as follows:

Warning: Could not resolve this reference. Could not locate the assembly
"nathansokalski_com_test, Version=1.0.0.0, Culture=neutral,
processorArchitecture=MSIL". Check to make sure the assembly exists on
disk. If this reference is required by your code, you may get compilation
errors.

Error: 'Transparency' is ambiguous in the namespace
'nathansokalski_com_test.NathanSokalski'.

I receive the error above for all my classes/customcontrols, even though
they are fully qualified names. The only real change made by the namespace
is that there are no errors in the *.aspx files, but there are still
errors when using the classes in the *.aspx.vb files. But now that I have
added a namespace, I know that none of my classes/customcontrols are
ambiguous with anything built into ASP.NET. What could they possibly be
ambiguous with, and what can I do to fix this? Thanks.
 
N

Nathan Sokalski

No, I tried a search for 'Class Transparency' and for 'Transparency', and
the first returned only one result (the ONE that exists) and the second
returned the places I am attempting to make use of that class. Also, keep in
mind that this same error is occurring for all of my custom classes. The
only thing left that I can think of to try would be to recreate my whole
solution through copy & paste, but I would prefer not to have to do that (if
it would even work). Any other ideas?
 
Ad

Advertisements

T

Tom Shelton

["Followup-To:" header set to microsoft.public.dotnet.languages.vb.]
I do not have an

Imports System.Windows.Forms

statement anywhere in my application, or anything else from the
System.Windows namespace (my application is an ASP.NET application, so I do
not need anything from this namespace). I have also tried using the fully

Ok, then it's probably System.Web.UI.Controls (I think that's it off my
head :). The point is you have two or more classes named Menu being
brought into the same namespace. This creates ambiguity if you don't
qualify your declarations.
 
Ad

Advertisements

C

Cowboy \(Gregory A. Beamer\)

You are naming your classes the same as classes in other namespaces you have
included in your pages. For example, there is a .NET class called Menu. You
also have one called Menu. Ambiguous, right?

Options: a) Remove all reference to System.Web.Controls or b) include
namespace in your own code for all controls.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

*************************************************
| Think outside the box!
|
*************************************************
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top