> Try this: > > List<string> asmNames = new List<string>(); > // If called by a method defined in a class in FooBar > foreach (Assembly asm in > System.Reflection.Assembly.GetCallingAssembly().GetReferencedAssemblies( > )) > asmNames.Add(asm.FullName);
That won't work for 100%. UI.exe calls BL.dll which references foo.dll UI.exe won't find 'foo.dll' using your method. You therefore need to loop through the assemblies recursively. You can also not use the appdomain's loaded assembly list, as .NET will only load all assemblies which are actively used. For the dependency injection feature in the upcoming llblgen pro v2.5 I had to implement this and ran into this same issue. The discovery is also quite time consuming (hence the fact that .net only loads the dlls which are actively used), and you have to do it in a separate appdomain to be able to unload everything if you want to. It's wise to setup a filter so you can weed out assemblies which you're not interested in (e.g. framework assemblies) or if you want to build another reflector, discover per treelevel, so you don't have to run the discovery recursively. :) FB ------------------------------------------------------------------------ Lead developer of LLBLGen Pro, the productive O/R mapper for .NET LLBLGen Pro website: http://www.llblgen.com My .NET blog: http://weblogs.asp.net/fbouma Microsoft MVP (C#) ------------------------------------------------------------------------ > > > // Kristofer > > -----Original Message----- > From: Discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED] On Behalf Of Knowlton, > Gerald F. > Sent: den 2 juli 2007 17:25 > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM > Subject: [ADVANCED-DOTNET] Looking for technique > > Greeting all; > > I'm looking for some pointers (clues for me) on how to discover what > DLL's a windows application will use when executed. > > For example; > > I have an application called FooBar. What I want to do is to be able > (through code embedded in the application) to find the name(s) of all > the dll(s) that FooBar will call when it is executed and place those > names in a collection. > > The Dll's that I am interested in are the ones I made a reference to in > the source code. > > I was first thinking "Reflection", but it doesn't appear so after some > investigation. > > Perhaps I should investigation deeper ??? > > I just know this is probably very easy to do and I'm going to kick > myself once someone gives me a clue. > > > Best regards, > > > Jerry Knowlton > View archives and manage your subscription(s) at > http://discuss.develop.com > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > > =================================== > This list is hosted by DevelopMentor. http://www.develop.com > > View archives and manage your subscription(s) at http://discuss.develop.com =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com