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

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

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
Answered 03/28/2007 by: rpfenninger
Second Degree Green Belt

Please log in to comment
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
Answered 03/28/2007 by: mark_holland21
Fourth Degree Green Belt

Please log in to comment
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
Answered 03/28/2007 by: gmorgan618
Blue Belt

Please log in to comment
Answer this question or Comment on this question for clarity