I inherited a project that I'm trying to gain a better understanding of the reasons certain decisions were made as I prepare for the next release. The existing product was designed to work with Office 2010. In the VS projects, there are references set to the Office PIAs in the GAC. In the InstallShield project, the Office PIAs are actually packaged and installed into the application directory.
As I prepared for a new version that interacts with Office 2013, I found that the older version and newer version of each Office PIA couldn't be included at the same time in the project or naming collisions would occur and I wouldn't be able to compile. I also found that if I tried to use the new version of the PIAs with an older version of Office, bad things would happen and my app would crash. So I concluded that a separate version would have to be compiled, one to target 2010 and one to target 2013.
As I updated my code and installer project as best I could without just creating a bunch of redundancies, I started thinking more about the PIAs themselves. If a user has Office installed, those PIAs should already exist in their GAC for their version of Office. Adding the newer PIAs into the installer seems like it would just bloat the installer file with extra files which are quite possibly not needed in the first place. If a user doesn't have Office, they can't use my app in the first place.
So, my main question is, is there a reason I should continue to include the Office PIAs in the installer? If so, should they be registered in the user's GAC or just placed in the app directory? Based on my summary, are there things that I have fundamentally misunderstood about where the PIAs should be?