Jump to content

Script -- MSXML4 SP2 with latest update for use with HFSLIP


Tomcat76

Recommended Posts

[Attachment removed]

Msxml4.dll, which is part of MSXML 4.0 SP2, has been renewed at least twice. The script attached to this post updates that file to the latest version and creates a new executable, msxml4.exe, which is supposed to be used as a replacement for msxmlcab.exe. When running this script from the HFSLIP folder, the updated executable is placed directly in the HF folder; otherwise, it will be located in the same folder you run this script from.

This should benefit:

- users who wish to have the most recent version of MS XML 4.0

- international users, as msxmlcab.exe is only available in English

Procedure:

1) Download the attached file. HFSLIP users can place it in the HFSLIP folder.

2) Create a folder alongside xml4-maker.cmd called HFXTC

3) Go to this page and download either msxmlcab.exe (English only), msxml.msi (English only) or msxml***.msi (other languages) and place it in HFXTC

4) Download KB887606 for the same language into HFXTC

5) Run xml4-maker.cmd

That's it. If you did this from the HFSLIP folder, you can run HFSLIP now.

Note #1: The final executable, msxml4.exe, can be used as a standalone installer too; to install it silently, use the default /q switch.

Note #2: Since msxml4.exe replaces msxmlcab.exe, the latter is no longer needed. When using HFSLIP, you are advised to remove msxmlcab.exe from the HF folder; HFSLIP processes files alphabetically which will leave you with the older version of msxml4.dll again as msxmlcab.exe is processed after msxml4.exe. And why would you keep two versions anyway?

Note #3: This script should only be run once. Just reuse msxml4.exe for every project.

Note #4: msxmlcab.exe contains only the two most essential files to support MSXML 4.0 SP2, while msxml.msi contains an SDK on top (hence its much larger size). You can regard the former as a plugin to view MSXML 4.0 content. The script attached to this post makes an updated version of msxmlcab.exe, even when using the MSI file as a starting point. This means that people who need the SDK functionality from the MSI should not use this script.

Updates:

2006-01-21: Un-bloated the script a little. No functionality changes.

2006-01-21: Un-bloated the script a little more. Thanks Yzöwl for the leads. No functionality changes.

2006-01-22: Updated the description. No functionality changes.

2006-01-23: Msxml4.exe can be used as a standalone installer. No functionality changes as far as HFSLIP is concerned.

Edited by Tomcat76
Link to comment
Share on other sites


There is a problem with your script, msxml*.msi and msxml.msi are the same.
Yes. I'm just doing that to rename msxmlfra.msi and the other non-English files to msxml.msi. I have to have the exact file name to do an admin install and I can't know which file somebody is going to use.
What about this update to MSXML 4 SP2 :

http://www.microsoft.com/downloads/details...5D-91E14FCF7A0D ( KB832414)

Is it needed too ?

No. That hotfix has an older version of msxml4.dll.

msxml4.dll KB887606 = 4.20.9828.0 (03-Aug-2004)

msxml4.dll KB832414 = 4.20.9821.0 (20-Jan-2004)

Link to comment
Share on other sites

You apparantly don't understand what I'm trying to do.

I'm first checking for the existence of msxmlcab.exe. It has preference because it doesn't need an admin install (ie, it just needs to be extracted which works faster).

==> if exist msxmlcab.exe

If msxmlcab.exe doesn't exist, the msi will be processed. Now here's the tricky part. In order to do an admin install, I need to know the exact file name of the msi. The English version is simply called "msxml.msi" but the localized versions are called "msxmlfra.msi", "msxmlger.msi", etc. I've opted to copy the localized versions to the working folder and rename them to "msxml.msi", and then run the general command to perform the administrative installation.

"msxml*.msi" = all msi files

"msxml.msi" = just the English msi file

"if exist msxml*.msi if not exist msxmlcab.exe" = exclude the exe, but include ALL msi's in this section (English, French, German, etc.)

"if not exist msxml.msi" = exclude the English version from the renaming routine

Link to comment
Share on other sites

My script, as do all of mine, works flawlessly. The script section I posted, and since removed, was done simply to attract a response from someone who assumed I didn't know what I was talking about. It was not workable, since it is not my place to rewrite your work but did however contain enough information to help you improve your script, essentially to incite you to slightly change the order of your thinking.

I have also re-wrote the entire HFSLIP script, but as it is not my script to correct, I too have not made corrections directly to the board. The msxml section, which was in serious need of tidying, was sent to tommyp for comment and later included, as have many other suggestions which for some reason have been ignored. Even the :HFEYzowl submission I made has been severely altered although never updated within the main script. Also I have no idea what the :HFEYzowleX is even supposed to do, though it appears to carry my name.

Although I am not saying that the scripts posted will not work, there are lines in there that are either not required or slow down the process.

Next time you run HFSLIP_60121.cmd for instance, do it from the cmd window with the following line:

HFSLIP_60121 2>error.txt

when the script has finished, look at the error.txt file!

Link to comment
Share on other sites

The msxml section, which was in serious need of tidying, was sent to tommyp for comment and later included, as have many other suggestions which for some reason have been ignored. Even the :HFEYzowl submission I made has been severely altered although never updated within the main script. Also I have no idea what the :HFEYzowleX is even supposed to do, though it appears to carry my name.

Yzowl, with all due respect, you do know your stuff with cmd scripts. However, the submission you PMd me a few months back for the HFEXPERT section didn't function properly. When I told you that it didn't work, you told me the same thing you told Tomcat76. When I asked you to test things first before submitting them to me, you got a little PO'd. But getting back to the scripts you do send, by modifying them a bit, they work nicely.

Link to comment
Share on other sites

My script, as do all of mine, works flawlessly.
Would you mind posting it again? I no longer have an unaltered version.
The script section I posted, and since removed, was done simply to attract a response from someone who assumed I didn't know what I was talking about.
That's a bit exaggerated. My script renamed the msi's for other languages to "msxml.msi" but left the English version alone since it's already called "msxml.msi". Your script (as well as my current version) doesn't exclude the English version; it renames "msxml.msi" to "msxml.msi" too. It's debatable which solution is the "least bloated".
Just wondering, do I need to rerun your script Tomcat after your modifications due to Yzowl's suggestions?
No. The resulting file is the same.
Link to comment
Share on other sites

Uh, no. msxmlcab.exe contains an older version of msxml4.dll. The whole point is to get you the most recent file. It's not forbidden to leave it in, but then you'll end up with the old version again because "msxml4.exe" is processed before "msxmlcab.exe".

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...