Вопрос

Microsoft's vexing dumping of vdproj install projects in VS 2012 leads one to try Installshield LE which is sort of built into VS2012. Sadly, it creates installers that do not work in any way shape or form with 64 bit.

So for instance clicking the Office 2010 installed checkbox only makes a prerequisite for 32 bit Office. It fails to detect 64 bit.

After a lot of chickenless head exploration of Installshield the bottom line is: 1) You need the Professional or Premiere version in order to deal with 64 bit. 2) You need to edit their provided condition to make a compound one that ORs all the guids of Office that you are interested in together as it only checks for one of the many out of the box. This details the structure of the GUIDS: http://support.microsoft.com/kb/2186281?wa=wsignin1.0. I found it helpful to install various versions in a VM and then using regedit to see what the GUID ends up being.

This post is so that someone can actually discover this with a Google search, instead of it being hidden behind a paywall / private support site.

Это было полезно?

Решение 3

Apparently the small print referenced here should have been one clue: Does InstallShield Limited Edition Support 64 bit Installer?

The current Office prerequisite in Installshield is also misleadingly worded. It should really be "Office 2010 Home & Professional 32 bit".

Perhaps they intend to upgrade it over time to be comprehensive or perhaps everyone has to go through the same hassle to fix it for a few cases they care about. The support guy claimed there are too many GUIDS for all the combinations of versions, bitness, releases etc.

Home & Student, Home & Professional, Professional, Office 2010 Professional Plus License 32bit, 64bit, Languages mangled in there, Service Packs, etc. Depending on the set you care about the number of GUIDS is rather large.

Другие советы

Update October '13 AlBear

There is a beta version of installshield LE for VS2012/13 To build x64 installation packages check on the help files Look for "64 Bit" .

The way InstallShiel LE recognizes x64 target is by either defining the [INSTALLDIR] property as one of the 64 bit Folder or by defining at least one of the setup components as 64 Bit. This works as I built an Excel 2013 Add that loads at startup and works fine.

For the Prerequisite for VSTO to work: You need to change file size and hash a it looks like the recommendations from Microsoft article "Deploying Office solutions vsto 2013" are outdated and the XML code recommended has the wrong file size and hash. Not too difficult to fix. However I think that Microsoft is unfortunately going through a period of crisis and this failure to provide reasonable support is uncharted territory ....... Cheers

InstallShield and WiX is like Visual Studio using VB.NET and SharpDevelop using C#. Just as those tools both create EXE's and DLL's using IL code but different language providers,

InstallShield and WiX both create Windows Installer databases using different languages. Just as a VB EXE can consume a C# DLL, an InstallShield MSI can consume a WiX Merge Modules. This gives you the best of both worlds.

The thing to understand is a VSTO AddIn installer isn't a 64bit MSI, it's a 32bit MSI that deploys an AnyCPU DLL with registry entries for either 32bit or 64bit Office. It's the bitness of Office, ultimately, that determines the bitness of your AddIn.

I have a template that I've used for a dozen customers. It uses InstallShield Limited Edition and it's Preq Bootstrapper to lay down all the dependencies and consumes a merge module authored is WiX and IsWiX (CodePlex). Otherwise ISLE is just a container for the UI and it's one feature.

The merge module takes care of all the dependency detection, gating logic, laying down files, installing certificates, setting registry values and so on.

Some more details can be found at:

VSTO 4 ( 2010 ) Lessons Learned

Office 2010 Bitness Pain

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top