Hello!
This is a rather long mail but it's a very interesting one.
I hope you read it. I have tried several times to get an answer to this mail
but I have
not get any answer saying something like this is a bug or that .NET doesn't
support what I
trying to do.
I hope that one that is is microsoft certified read this because this must
be a bug.
I use VS 2003 and C#.
I have three project in my solution. One that build the exe and one that
build the user control dll and one that build the class library dll.
I have successfully managed to build both the user control dll and the class
library dll.
In the user control dll I have a class called B.
Note that I have only problem in design mode so far.
Look here. This is what I do and what should happen.
I drag the user control icon named B from the Toolbox into a form and when I
do so a row in the InitializeCompo nent in the form is automatically added
see ** below. As you can see
the constructor for class B in the user control is called and here we
instansiate an object of
class C which exist in the class library dll. This means that when we drag
the
user control from the toolbox we use the class library to instansiate class
C.
private void InitializeCompo nent()
{
this.b1= new B();// **
}
Here we have the constructor for class B for the user control.
public B()
{
InitializeCompo nent();
C c = new C(); //Here we instansiate a class C in the class library
c.foo();
}
I have a project reference to the class library from the user control.
I also have a project reference to the user control and to the class library
from my project that
build the exe file. In this project I have the form where the user control
is dragged into.
I can build the exe file but my problem is in design mode when the user
control is dragged into a form.
My user control is dependent of class library which mean if I rebuild the
user control
then will the class library also be rebuilt.
If I recompile the user control which build both dll everything works fine
when I drag the user control into a form.
If I instead only rebuild the class library and then try to drag the user
control into a form I get this error
"An exception occured while trying to create an instance of
B. The execption was "?"."
This is because the class library can't be found.
As far as I know I have all the references correct set because it works if I
rebuild the user control.
So when I have this error I can solve this error by recompileng the user
control again which rebuild both dll and then it works again when I drag the
user control into a form.
If I do the following my user control will disappear.
1.Rebuild the user control wich rebuild both dll.
2.Drag the user control B into a form.
3.Now rebuild only the class library.
4.Use View designer to look at the user control in the form.
When you do this it will disappear. It will disappear because it can't
find the class library dll for some reason.
Another thing I can't use the workaround that means rebuild the user control
because
that would be a very bad solution. If I can't use it in the way I do now I
must do some change in the design.
One more thing is that if I add some method in the class library and then
rebuild this one
I can see all the added method in "View in object browser" when right
clicking on the last in the references.
I just want to say it's very easy to reproduce my problem and see by
yourself that it's a strange problem.
Has anybody any suggestion about my problem.
Is it a bug or .NET might not fully support what I do.
//Tony