Udostępnij za pośrednictwem


Having assembly binding problems?

If you're getting assembly load errors and cannot figure out why, you can use the fusionlog viewer to help figure it out.  The fusion log will show exactly how all managed assemblies were resolved.

Check out:

https://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrffusionlogviewerfuslogvwexe.asp

This includes retargeted assemblies.  For example, if you run your device application on the desktop, compact framework assemblies are “retargeted” to desktop versions -- but only if fusion policy was applied. 

If you get a cryptic assembly load error when trying to run your app, try using the above log viewer.  It can save you a few hours.

Comments

  • Anonymous
    February 16, 2004
    Or how about fixing the actual problem, BETTER ERROR MESSAGES.

  • Anonymous
    February 16, 2004
    The problem isn't always a poor error message, Mr. "Vackoff". Sometimes you need to see the probing paths to figure out how the assembly is being located. Load, LoadFrom, and LoadFile all use slightly different hueristics for loading assemblies. Many customers also will place extra probing paths in thier .exe.config file. Reflection has no idea where an assembly is SUPPOSED to come from -- only that it did not resolve it appropriately. When looking at the logs and seeing the probe paths and results per path, the problem is much easier to identify.
  • Anonymous
    February 16, 2004
    The comment has been removed
  • Anonymous
    February 16, 2004
    No no they blame Windows!!!
  • Anonymous
    February 16, 2004
    Alot of customers dont even know what a Control Panel is nevermind a log file (especially one that is burried deep in teh system and crptic) or worse, the event log.

    To Quote Alien the movie

    "Did IQs just drop when I was away".
  • Anonymous
    February 16, 2004
    The comment has been removed
  • Anonymous
    February 16, 2004
    In todays climate, I wouldnt trust a dev to know what a config file is either. :D
  • Anonymous
    June 02, 2004
    I'm trying to create a WebService that uses a managed DLL that in turn uses unmanaged C++ DLLs.
    I can't get the unmanaged DLLs to be copied in the assembly cache. I've tried everything... except the right thing, of course. I'm lost. Any help ?
    Thanks
  • Anonymous
    June 02, 2004
    Are the unmanaged dll's COM objects? You should be able to either register the native dll and use managed interop wrappers or place the native dll in the system path (if its not a COM object) to allow the webservice to find it. I'm no expert in the web space, but have you tried this?
  • Anonymous
    June 03, 2004
    No, they are not COM objects. Plain old C++ DLLs.
    I can put them in the System32 directory, and it works, but it is Wrong, I guess.

    As for "registering the native DLL and use managed interop wrappers"... well I guess that I'll have to google to know what it means :-/

    Thanks
    -- JM
  • Anonymous
    November 27, 2007
    PingBack from http://feeds.maxblog.eu/item_584336.html