Home All Groups Group Topic Archive Search About
Author
19 Apr 2006 10:00 PM
Aberro-Bill
Hi All,
I have code that loads a strongly named assembly using "Assembly.LoadFrom()"
and then finds all the types in the assembly using "GetTypes()".  The code
has worked flawlessly in .NET 1.1 both on a development box and a clean box.
With .NET 2 it works on a development box, but NOT a clean box (XP pro, SP
2, .NET 1.1 and 2, all updates to this date).  If I install the .NET 2 SDK
on my clean box it will work.
When it fails the message lists all the types in the assembly, so I know the
assembly loaded.

Why does this work on a development box or a box with the .NET 2 SDK, but
not a clean box?

What do I do to make it work on a clean box?

Thanks,
Bill

Here is a code snippet:

Assembly MyAssembly = Assembly.LoadFrom( FileName );
Type[] MyTypes = null;
try
{
    MyTypes = MyAssembly.GetTypes();
}
catch (ReflectionTypeLoadException ex)
{
    string msg = "";

    foreach (Exception e in ex.LoaderExceptions)
    {
        if (e.Message != null) msg += e.Message + Environment.NewLine;
    }
    msg = "GetMyTypes() threw a TypeLoadException" + Environment.NewLine +
msg;
    MessageBox.Show( msg );
}

Author
20 Apr 2006 1:57 AM
Kevin Yu [MSFT]
Hi Bill,

If the app fails on loading the assembly file, could you please post the
exception message and stack trace here, so that I can do more research on
it.

Kevin Yu
Microsoft Online Community Support

============================================================================
==========================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
============================================================================
==========================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Author
20 Apr 2006 3:59 PM
Aberro-Bill
Hi Kevin,

The app appears to succsssfully load the assembly file.  The failure occurs
when I try to extract the types in it.
The exact type of the exception thrown by GetTypes is
"ReflectionTypeLoadException".  Here is the list from that exception and the
stack trace.
Note: the loaded assembly has exactly 2 types in it and both their types
failed to load.  Both types are derived from a base type "Observer" from a
dll in the GAC.
This works on a development box (app built with Visual Studio 2005), a box
with .NET 2 and .NET 2 SDK, but not a box with just .NET 2 (which is what my
customers will have)
My test boxes are XP SP2 Virtual PCs, all security patches up to date.
I have looked at the fusion log and it does not seem to show anything
unusual.
How can I get more diagnostic info about why GetTypes() is failing?

Bill

GetTypes() in LoadObservers threw a
System.Reflection.ReflectionTypeLoadException
Could not load type 'ContraTest.Default' from assembly 'Observers,
Version=1.5.0.0, Culture=neutral, PublicKeyToken=54150cdd1a8a7687'.
Could not load type 'ContraTest.NativeMDI' from assembly 'Observers,
Version=1.5.0.0, Culture=neutral, PublicKeyToken=54150cdd1a8a7687'.

Stack Trace:
   at System.Reflection.Module.GetTypesInternal(StackCrawlMark& stackMark)
   at System.Reflection.Assembly.GetTypes()
   at ContraTest.Project.LoadObservers()


Show quote
"Kevin Yu [MSFT]" <v-k***@online.microsoft.com> wrote in message
news:Gz2AB3BZGHA.2116@TK2MSFTNGXA01.phx.gbl...
> Hi Bill,
>
> If the app fails on loading the assembly file, could you please post the
> exception message and stack trace here, so that I can do more research on
> it.
>
> Kevin Yu
> Microsoft Online Community Support
>
> ============================================================================
> ==========================
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ============================================================================
> ==========================
>
> (This posting is provided "AS IS", with no warranties, and confers no
> rights.)
>
Author
21 Apr 2006 3:34 AM
Kevin Yu [MSFT]
Hi Bill,

The Observer interface is in the visual J# library, which you might need to
install the Visual J# redistribution page. You can download the 2.0 version
from the following link:

http://www.microsoft.com/downloads/details.aspx?FamilyID=f72c74b3-ed0e-4af8-
ae63-2f0e42501be1&DisplayLang=en

Kevin Yu
Microsoft Online Community Support

============================================================================
==========================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
============================================================================
==========================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Author
21 Apr 2006 2:33 PM
Aberro-Bill
Hi Kevin,

ContraTest.Observer is my base class and these classes are namespaced so
there is no conflict with visual J# and there is no J# code - this
application is C# and some managed C++ but there is no C++ involved in this
part of the code.  The types that fail to load are in my namespace ie
"ContraTest.Default".

So I don't see how your commment that we need the J# redist.

Bill

Show quote
"Kevin Yu [MSFT]" <v-k***@online.microsoft.com> wrote in message
news:HTDv1RPZGHA.932@TK2MSFTNGXA01.phx.gbl...
> Hi Bill,
>
> The Observer interface is in the visual J# library, which you might need
> to
> install the Visual J# redistribution page. You can download the 2.0
> version
> from the following link:
>
> http://www.microsoft.com/downloads/details.aspx?FamilyID=f72c74b3-ed0e-4af8-
> ae63-2f0e42501be1&DisplayLang=en
>
> Kevin Yu
> Microsoft Online Community Support
>
> ============================================================================
> ==========================
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ============================================================================
> ==========================
>
> (This posting is provided "AS IS", with no warranties, and confers no
> rights.)
>
Author
24 Apr 2006 8:18 AM
Kevin Yu [MSFT]
Hi Bill,

I mistake it for the Observer class in J#. On that clean machine, has your
strong named assembly been installed to GAC properly? In other words, you
can check in c:\windows\assembly folder to see if that assembly(with
correct name, version, culture and public key token) has been installed.

Kevin Yu
Microsoft Online Community Support

============================================================================
==========================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
============================================================================
==========================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Author
24 Apr 2006 2:50 PM
Aberro-Bill
Yes, I have checked that the strongly named assembly is GACd, is the correct
version, etc.
I know it can work because if I take the clean machine with my software
installed and then install the .NET 2 SDK my software starts working just
fine and I have not touched the installation of my software.  The only thing
different is I installed the .NET 2 SDK.

Thanks,
Bill

Show quote
"Kevin Yu [MSFT]" <v-k***@online.microsoft.com> wrote in message
news:Ihil8e3ZGHA.880@TK2MSFTNGXA01.phx.gbl...
> Hi Bill,
>
> I mistake it for the Observer class in J#. On that clean machine, has your
> strong named assembly been installed to GAC properly? In other words, you
> can check in c:\windows\assembly folder to see if that assembly(with
> correct name, version, culture and public key token) has been installed.
>
> Kevin Yu
> Microsoft Online Community Support
>
> ============================================================================
> ==========================
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ============================================================================
> ==========================
>
> (This posting is provided "AS IS", with no warranties, and confers no
> rights.)
>
Author
27 Apr 2006 7:57 AM
Kevin Yu [MSFT]
Hi Bill,

This seems to be a little weird. Could you please attach your assembly and
some code for me to test?

Kevin Yu
Microsoft Online Community Support

============================================================================
==========================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
============================================================================
==========================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)

AddThis Social Bookmark Button