/build/static/layout/Breadcrumb_cap_w.png

Dll hell problem

Hi all,

I have a problem in that a dll exists on the build in C:\Windows\System32, Moagent32.dll and it's version is 3.0.0.46.
A new package has come to light that uses the same dll in the same directory. The problem is that this "new" dll has a lower version number 3.0.0.37. Having spoken to the vendor it turns out that this "older" version is in fact newer and more up to date. Apparently the vendor screwed up with the versioning.

Now, obviously when I try to install my "older" dll it won't install because a newer file exists. How would I go about overwriting the "newer" dll with my "older" one?

I've tried using VB Script to unregister the dll in question and then delete it, followed by installing my dll and registering it. The problem is that the dll that exists on the build is marked as read only and therefore I keep getting an error with the VBScript saying i don't have the permissions to delete this file.

Anyone have any ideas how i can get around this?

0 Comments   [ + ] Show comments

Answers (3)

Posted by: rpfenninger 17 years ago
Second Degree Green Belt
0
Hi Mark

If you really need to replace the 3.0.0.46 dll with your 3.0.0.37 I think one solution will be using the RemoveFile table to remove the dll on the workstation before installing yours with the package.

Hope this helps

Cheers

Roland
Posted by: mark_holland21 17 years ago
Fourth Degree Green Belt
0
Thanks for that idea,

I've placed that line into the Remove File table with a condition of 1 and on a component that's definitely getting installed and it removed the file.

I'll use the script to now copy my new file into the correct location and to register it.

Cheers,
Rgds,
Mark
Posted by: gmorgan618 17 years ago
Blue Belt
0
If it comes down to it,

Use SessionManager(PendingFileRenameOperations) in the Registry - to do a File switch upon reboot.

Move to HKLM\SYSTEM\CurrentControlSet\Control\Session Manager

Double click on
PendingFileRenameOperations
(if it does not exist - create of type multi_str )

On the first line is the name of the new file with \??\ in front,
e.g.
\??\d:\temp\ntfs.sys

On the second line is the file to replaced with !\??\ in front,
e.g.
!\??\c:\winnt\system32\drivers\ntfs.sys

Click OK

So the complete Multi-String Data would appear like:
\??\d:\temp\ntfs.sys
!\??\c:\winnt\system32\drivers\ntfs.sys

Once the reboot is complete and the file replaced the PendingFileRenameOperations value will be deleted from the registry
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ