how can I manually install the Office 2007 PIAs on

2019-06-24 15:27发布

问题:

I have seen a few other questions regarding the Office 2007 PIAs, in particular:

  • Can you install Office 2007 PIA's without office? (3)
  • Is Office 2007 PIA deployment possible without Office 2007?

This question is different.


In my experience, it is not possible to install Office 2007 PIAs when Office 2007 is not already installed on the machine. I run the MSI, it displays a dialog for about 5-7 seconds saying "Please Wait while Windows configures Office 2007 Primary Interop Assemblies..." and then the dialog disappears, and nothing appears to have changed.

Most notably, there are no Office assemblies in the GAC.

If I am doing something wrong, please correct me. For now I am assuming that this is the expected behavior, and that the leading answers to this other question, is wrong.


Which leads us to my actual question. Assuming my experience installing the PIAs without first having installed Office is the expected one, is it possible for me to install the PIAs "manually" into the GAC?

My purpose is to allow compilation of a project that depends on the PIAs. I don't expect to run the application. I am not asking if it is possible to run an app that uses the PIAs when Office is not installed. I know the answer to that. I am asking if it is possible to install the PIAs to allow compilation of a project on a build machine, without first installing Office.

I tried unpacking the o2007pia.msi file with msiexec /a, but no joy. But, I was able to use lessmsi to manually extract the files within the MSI.

I was thinking to try to gacutil -i each of the DLLs from the MSI file, like these:

10/26/2006  09:17 PM  1,276,720 Microsoft.Office.Interop.Excel.dll
10/26/2006  08:02 PM    150,320 Microsoft.Office.Interop.Graph.dll
10/26/2006  09:42 PM    146,232 Microsoft.Office.Interop.InfoPath.dll
10/26/2006  09:42 PM    404,296 Microsoft.Office.Interop.InfoPath.SemiTrust.dll
10/26/2006  09:41 PM     88,896 Microsoft.Office.Interop.InfoPath.Xml.dll
10/26/2006  09:06 PM    903,992 Microsoft.Office.Interop.MSProject.dll
10/26/2006  08:24 PM     17,208 Microsoft.Office.Interop.OneNote.dll
10/26/2006  08:55 PM    920,376 Microsoft.Office.Interop.Outlook.dll
....  

But, I also see these items:

10/26/2006  09:00 PM      900 Policy.11.0.Microsoft.Office.Interop.Access.config
10/26/2006  09:18 PM   12,104 Policy.11.0.Microsoft.Office.Interop.Access.dll
10/26/2006  08:56 PM      898 Policy.11.0.Microsoft.Office.Interop.Excel.config
10/26/2006  09:17 PM   12,096 Policy.11.0.Microsoft.Office.Interop.Excel.dll
10/26/2006  07:53 PM      898 Policy.11.0.Microsoft.Office.Interop.Graph.config
10/26/2006  08:02 PM   12,096 Policy.11.0.Microsoft.Office.Interop.Graph.dll
....

What do I do with these Policy DLLs and config files?

Can I ignore them?
Thanks for any advice you can provide.

回答1:

Yes, you can ignore them.

However, you don't need to put the PIAs in the GAC at all.
You can simply reference a local copy of the PIAs in your source control tree.