• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 260
  • Last Modified:

URGENT: Determining all .NET DLLS my App is using

I'm trying to write a config file so that my app can work with 1.0 as well as 1.1.  Is there some program I can use to determine all of the dlls my application is using?

I need this list so I can specifically enumerate all of these dlls in a config file.
0
jjacksn
Asked:
jjacksn
  • 7
  • 5
  • 3
  • +1
3 Solutions
 
gregoryyoungCommented:
fuslogvw.exe

To log all binds in the viewer

Set the HKLM\Software\Microsoft\Fusion\ForceLog registry value to 1 (the value is a DWORD).
By default, Fuslogvw.exe only logs failed attempts to locate assemblies. You might have a situation where it is useful to view all successful assembly binds. For example, you might want to verify that an assembly is loading from your application directory instead of from the global assembly cache. Setting this registry key forces Fuslogvw.exe to log all assembly binds.
0
 
gregoryyoungCommented:
btw if you didnt know ... this is a tool thats included with the framework
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
jjacksnAuthor Commented:
its listing .resource files... do I need to include these?
0
 
jjacksnAuthor Commented:
and mscorlib?
0
 
gregoryyoungCommented:
mscorlib is a framework .dll (gac installed)
0
 
rajaloysiousCommented:
You can use ProcessExplorer ( search in the network)  you need to have admin rights....
It shows all files, registry keys, dlls etc.... quite useful
0
 
jjacksnAuthor Commented:
I guess my questions is this:  What exactly needs to be listed in the configuration file?  The one that gets generated by Visual Studio 2003 when you select compatability with 1.0 seems to have many irrelevant files and lacks relevant ones...?

Is this just meant to be a template?
0
 
dfiala13Commented:
BTW, you don't need any of this stuff. The debug window in VS lists the loaded assemblies when you run a project.
0
 
dfiala13Commented:
Are you talking about the assemblyBinding element?  How do you set VS to generate it dynamically?
0
 
jjacksnAuthor Commented:
dfiala,

You can go to the configuation properties for your .exe and set it to work with both 1.0 and 1.1.  VS.NET then generates an app.config file.  However, this file is generic, and doesn't have any specific data about your progarm.  So, it seems that it doesn't help a great deal.
0
 
dfiala13Commented:
Interesting.  Yes, that does seem to be a generic list, as I did it in a one form project and got a laundry list.  I'd just roll your own given the assemblies you've identified.  You could even generate it automatically if so inclined, using the AppDomain class to get a list of loaded assemblies.  Would give you everything you need except for the old version #.
0
 
jjacksnAuthor Commented:
Yeah, i think I'll just go off the debug window as you suggested.  

I'm still confused though, do I need to include my resource files?  
0
 
dfiala13Commented:
Include your resource files in the assemblyBinding element?  No.  They are not assemblies.
0
 
dfiala13Commented:
here's the code for looping through the loaded assemblies.  Throw an XmlTextWriter in the loop and you can create your binding section in no time.

public static string[] WhatAssem
{

      get
      {
            AppDomain ad = AppDomain.CurrentDomain;
            Assembly[] asmb = ad.GetAssemblies();
            string[] sAssembName = new string[asmb.Length];
            for(int i = 0;i < ass.Length; i++)
            {
                  sAssembName[i] = asmb[i].FullName;
                  Debug.WriteLine(sAssembName[i]);

            }

            return sAssembName;


      }


}
0
 
dfiala13Commented:
Shoudl be:

public static string[] WhatAssem
{

     get
     {
          AppDomain ad = AppDomain.CurrentDomain;
          Assembly[] asmb = ad.GetAssemblies();
          string[] sAssembName = new string[asmb.Length];
          for(int i = 0;i < asmb.Length; i++)
          {
               sAssembName[i] = asmb[i].FullName;
               Debug.WriteLine(sAssembName[i]);

          }

          return sAssembName;


     }


}
0
 
rajaloysiousCommented:
Thanks for your reply, but...
Doesnt work still with your code.
I am playing a lot with the colors
Kindly let me know how can i change the solor of the pen and then call DrawText..
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 7
  • 5
  • 3
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now