The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 4,259 other subscribers

Extracting MSI files revisited: the Office 2003 PIA (which lived up its acronym)

Posted by jpluimers on 2013/02/07

The methods I described in via: Extracting MSI files didn’t work for the MSI installer for the Office 2003 Primary Interop Assemblies (which you get through here, or directly download the O2003PIA.exe installer).

I needed to extract the files, because of this problem described in by Office 2003 PIA Redistributable is available – Patrick Smith: Microsoft InfoPath – Site Home – MSDN Blogs:

Important Issues to keep in mind:

  • This MSI is designed to contain all of the PIA’s which shipped with Microsoft Office System 2003.  The product PIA’s will only install if the parent product is installed on the machine.
  • Leave the PIA redistributable on the machine once it’s installed.  Because this product is redistributable, many add-ins could ship it.  The MSI will only install once and then subsequent installs would just see that it’s already on the machine.  Removing it via Setup logic will remove it for everyone.  The current recommendation is to leave uninstallation of the PIA Redistributable to the end user through Add/Remove Programs.

Currently I’m involved in a suite of .NET 4 applications that interface with Office. Office 2003 is the minimum required version, but:

  • most users and developers have Office 2007 or better installed,
  • not all people have all parts of Office installed,
  • the build server does not have Office installed at all.

In none of those scenarios, the PIAs are installed.

So I needed a way to extract all the PIA binaries with the official long filenames from the O2003PIA.MSI that is inside the O2003PIA.EXE installer.

Extracting the installer was simple: just install it, and it decompresses to a directory of choice. Or use your decompression tool of choice.

Extracting the O2003PIA.MSI was a lot harder:

Finally, msgoodies: Extracting files from MSI pointed me to WiX Toolset that used to be at Windows Installer XML (WiX) toolset | Free Development software downloads at SourceForge.net, but now is at the WiX Toolset CodePlex repository, and is available as WiX Toolset – Download: WiX v3.6 RC.

The msgoodies article uses this commandline:

Dark.exe file.MSI file.XML /x .

Based on that (note the dot – . –  means current directory), this is what I did:

  1. I copied the O2003PIA.msi to C:\temp\,
  2. then created C:\temp\O2003PIA-Files,
  3. fired up a console,
  4. changed the directory to C:\temp\O2003PIA-Files,
  5. then ran this command on that console:
    "C:\Program Files\Windows Installer XML v3.5\bin\dark.exe" C:\temp\O2003PIA.msi O2003PIA-Files.XML /x .
  6. Now the directory C:\temp\O2003PIA-Files\File contains all the files, but not with their full filenames
  7. However, the file C:\temp\O2003PIA-Files\O2003PIA-File.XML contains both the short names and the full filenames.
  8. So based on the O2003PIA-Files.XML, I generated this batch file:

From the , I distilled this small batch file that copies all the short filenames to their full file names:

copy C:\temp\O2003PIA-Files\File\ACCESS.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Access.dll
copy C:\temp\O2003PIA-Files\File\EXCELPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Excel.dll
copy C:\temp\O2003PIA-Files\File\FORMSPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Vbe.Interop.Forms.dll
copy C:\temp\O2003PIA-Files\File\FPPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.FrontPage.dll
copy C:\temp\O2003PIA-Files\File\FPEPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.FrontPageEditor.dll
copy C:\temp\O2003PIA-Files\File\GRAPHPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Graph.dll
copy C:\temp\O2003PIA-Files\File\MSTAGPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.SmartTag.dll
copy C:\temp\O2003PIA-Files\File\OWC11PIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Owc11.dll
copy C:\temp\O2003PIA-Files\File\OUTLPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Outlook.dll
copy C:\temp\O2003PIA-Files\File\OLCTLPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.OutlookViewCtl.dll
copy C:\temp\O2003PIA-Files\File\PPTPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.PowerPoint.dll
copy C:\temp\O2003PIA-Files\File\PUBPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Publisher.dll
copy C:\temp\O2003PIA-Files\File\VBIDEPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Vbe.Interop.dll
copy C:\temp\O2003PIA-Files\File\WORDPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Word.dll
copy C:\temp\O2003PIA-Files\File\IPATHPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.InfoPath.dll
copy C:\temp\O2003PIA-Files\File\IPCLRWRP.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.InfoPath.SemiTrust.dll
copy C:\temp\O2003PIA-Files\File\PROJPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.MSProject.dll
copy C:\temp\O2003PIA-Files\File\IPXMLPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.InfoPath.Xml.dll
copy C:\temp\O2003PIA-Files\File\VISIOPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Visio.dll
copy C:\temp\O2003PIA-Files\File\SAWPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.Visio.SaveAsWeb.dll
copy C:\temp\O2003PIA-Files\File\VOCXPIA.DLL C:\temp\O2003PIA-Files\FullName\Microsoft.Office.Interop.VisOcx.dll
copy C:\temp\O2003PIA-Files\File\FL_adodb_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 C:\temp\O2003PIA-Files\FullName\adodb.dll
copy C:\temp\O2003PIA-Files\File\FL_msdatasrc_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 C:\temp\O2003PIA-Files\FullName\msdatasrc.dll
copy C:\temp\O2003PIA-Files\File\FL_Microsoft_mshtml_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 C:\temp\O2003PIA-Files\FullName\Microsoft.mshtml.dll
copy C:\temp\O2003PIA-Files\File\stdole_dll_4_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 C:\temp\O2003PIA-Files\FullName\stdole.dll

And now all the Office 2003 PIA are in our source repository.

–jeroen

via:

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.