CLR was running a version of my dll that didn't exist!?!?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Dave Stienessen (daves_at_xata.com)
Date: 04/01/04

  • Next message: Ross: "Disabling "Common Language Runtime Debugging Services" Pop-Up Dialog"
    Date: Thu, 1 Apr 2004 11:42:05 -0600
    
    

    OK, we have a .NET dll hosted in COM+ running as a queued, pooled
    component - I say this as an explanation of why my assemlies are in the GAC
    (the only way to run a COM+ server app).

    that said, our test server which gets uninstalled/reinstalled almost daily
    had an issue that I'm trying to understand. To keep this as simple as
    possible, say we have foo.dll version 1.0.0 installed to the GAC and COM+,
    uninstall it from both the gac and com+ (doesn't show up in the GAC anymore
    and the com+ app is gone) we then install foo.dll version 1.0.1 into the
    gac, configure the com+ app and it appears to be running fine, however it
    behaved like version 1.0.0 (my new functionality isn't there). Being rather
    confused, I connected with VS.NET remote debugging to the machine and the
    dllhost.exe process that runs the COM+ app and the list of loaded dlls
    indicated it loaded
    c:\winnt\assembly\gac\foo\1.0.0.0__d00ffae71e972870\foo.dll

    Upon examining the file system in a command prompt, I find that that
    directory (for version 1.0) and the dll doesn't exist!!

    We rebooted the computer and it began running version 1.0.1 like it should,
    but I'm damn confused about where it was really getting the code to run
    version 1.0!!!!

    Can someone educate me please. Is it caching the JIT code somewhere that
    its running it from or what's happening.

    If I get a better understanding of this behavior I can change our
    installshield program to do a reboot, but I'd like to understand what's
    happening first. This behavior hasn't been consistent at all.

    PS if I should post elsewhere let me know
    Thanks
    Dave Stienessen
    daves@xata.com


  • Next message: Ross: "Disabling "Common Language Runtime Debugging Services" Pop-Up Dialog"

    Relevant Pages

    • Re: GAC, Fusion.dll and Access Denied
      ... Sample managed code to check if you are admin or not: ... There is a bug in v1.0/v1.1 fusion GAC API that it *remembers* the ... > of a component which is contained in a strong-named DLL hosted in the ... > 2) Install that DLL into the GAC ...
      (microsoft.public.dotnet.framework.clr)
    • Re: To GAC or not to GAC, that is the question
      ... Well, theoretically, if you updated your DLL, you would want it to available ... >> Since you will have multiple applications using the same DLL, the GAC ... Having multiple copiues of a DLL ... Would you want to run the risk of an update of App A causing ...
      (microsoft.public.dotnet.general)
    • Re: GAC and Source Safe
      ... using GAC would be better option. ... You should also condider that .NET allows you to avoid 'dll ... version of libary with your app and not break anyone else. ... and put in the source safe. ...
      (microsoft.public.dotnet.framework.aspnet)
    • Re: CLR was running a version of my dll that didnt exist!?!?
      ... > (the only way to run a COM+ server app). ... > uninstall it from both the gac and com+ (doesn't show up in the GAC ... > and the com+ app is gone) we then install foo.dll version 1.0.1 into the ... Is it caching the JIT code somewhere that ...
      (microsoft.public.dotnet.framework.clr)
    • .Net & COM interop deployment
      ... The second is the writing application which is a c# dll with a COM ... called from Excel the AppBase seems to get set to the Excel install ... to install them in the GAC for them to be found. ...
      (microsoft.public.dotnet.framework.interop)