PDA

View Full Version : DLL becomes non-functional upon installation



Chip Keen
06-20-2008, 03:21 PM
One of the many DLLs in my project becomes corrupted and non-functional at some point between the time it's included in the build and the time it's installed on the end-user's computer.

I have to manually copy the original file to the end-user's computer to restore it's functionality. I've been running tests on this for the past three days. It's not a one-time fluke. It's happened on about a dozen computers all over the country, but not for all of my users.

I believe this started occurring only after I migrated the project to 2008 Express from 12 Express.

Can anyone make a suggestion on how to resolve this problem?

hidenori
06-20-2008, 04:30 PM
I am wondering if your DLLs have some missing dependencies on the computers in question.

Christopher Painter
06-20-2008, 04:54 PM
Also, what kind of DLL are we talking about? The deployment requirements and troubleshooting steps vary for Win32 PE, COM and .NET DLL's.

Chip Keen
06-20-2008, 05:25 PM
Thank you both for your prompt replies! The DLL in question is a .NET/C# file, written by my developers. I've just run a re-build with Dependencies switched back on for the problem DLL (I'd had it switched off since the Express 12 days). It's missing a dependency for LIBC.DLL. I can't find that on my local machine, and I don't see it in any of the C or C++ merge modules.

Chip Keen
06-20-2008, 05:52 PM
Another thought, and a question for hidenori: The idea of a missing dependency on the user's machine would nicely explain why the DLL works on some user's computers, and not on others, but why will the DLL work if I manually copy it (via Internet) from the build computer to my user's computer? Does the dependency need to be available as part of the installation process?

Chip Keen
06-23-2008, 11:51 AM
This issue is still unresolved. Here are screenshots of the DLL's Properties window before and after the InstallShield build and install.

Before: http://community.installshield.com/attachment.php?attachmentid=7070&stc=1&d=1214238865


After: http://community.installshield.com/attachment.php?attachmentid=7071&stc=1&d=1214239670

Can anyone tell me why the file size might be larger after the build and install?

Also, I've discovered that if I uninstall the .NET Framework 2.0, the installed version of the DLL will work. So at least for now I have two workarounds: either copy the original file directly, or un-install 2.0.

MichaelU
06-24-2008, 09:49 AM
Looks like the answer is hiding right in front of us: note the larger DLL has a Digital Signatures tab. I don't know what about the digital signature would prevent this DLL from working correctly, but perhaps it should be added to the exclusion list in the releases view, signing tab.

Chip Keen
06-24-2008, 12:00 PM
That was brilliant and perspicacious Michael! Excluding the DLL from digital signing did the trick. The "before" and "after" file sizes are now identical.

You're right, the solution was in front of me all the time, I just couldn't see it.

I still have to test the new install on Vista, but the change has definitely corrected the issue on the one XP machine that I could duplicate the problem on.

Thank you for your help, I'm deeply grateful.