VS 2010 Installer Project: how to deploy Enterprise Library

Lasta
Lasta used Ask the Experts™
on
There is a special way to verify [via Requirements on Target Machine > Launch Conditions] if the target machine lacks a certain version of .NET Framework. What would be the way to do have Installer to check if  Enterprise Library 5.0 is already present in GAC, and install it if not found.  

I believe each individual assembly has its own GUID, complicating the detection.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Author

Commented:
These links are about adding assemblies to GAC. I need something more complex: add the entire Enterprise Library (many assemblies) as part of installation process. I see nothing similar to the special action of installing .NET Framework (that is a single action within VS 2010 Install Project). The latter refers to the Web-accessible location where .NET Framework resides.

If I am asking for something impossible to do within Visual Studio 2010: What other installation package should I employ to accomplish the task? Where to add Enterprise Library
Announcing the Winners!

The results are in for the 15th Annual Expert Awards! Congratulations to the winners, and thank you to everyone who participated in the nominations. We are so grateful for the valuable contributions experts make on a daily basis. Click to read more about this year’s recipients!

Author

Commented:
The page with the link you have provided says: "The types of items that can be added to a deployment project include the project outputs, files, merge modules, and assemblies" -- I am talking, however, about many assemblies constituting Enterprise Library.

Employing an Installer Bootstrap could be the right solution because it can run the Library's installation .msi as a single step. But in order to check if the package is already installed I need to provide the bootstrap with its GUID, and there is no single GUID in this case.

Author

Commented:
What they describe is exactly where I started. But without those assemblies being in GAC of the client machine the logged  application errors cannot be seen by the user (and Ent. Lib. installed in GAC makes it possible).

Author

Commented:
Let's step out a bit. Regardless of my goal to install in GAC or not, Enterprise Library 5.0 is not installed when I use this file product.xml in the directory designated by HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\GenericBootstrapper\4.0 (in my case it's C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper):

<?xml version="1.0" encoding="utf-8"?>
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  ProductCode="OCA 32-and-64">
  <RelatedProducts>
    <DependsOnProduct Code=".NET Framework 4.0" />
    <DependsOnProduct Code="Windows Installer 4.5" />
    <IncludesProduct Code="Enterprise Library 5.0" />
  </RelatedProducts>
  <InstallChecks>
  </InstallChecks>
  <PackageFiles>
    <PackageFile Name="Enterprise Library 5.0.msi"/>
  </PackageFiles>
  <Commands>
     <Command PackageFile="Enterprise Library 5.0.msi" Arguments="">
      <ExitCodes>
        <ExitCode Value="0" Result="Success"/>
        <ExitCode Value="1641" Result="SuccessReboot"/>
        <ExitCode Value="3010" Result="SuccessReboot"/>
        <DefaultExitCode Result="Fail" String="GeneralFailure"/>
      </ExitCodes>
    </Command>
  </Commands>
</Product>

No diagnostics is given either: the VS 2010 solution builds and shows the two prerequisites .NET Framework 4.0 and Windows Installer 4.5 check boxes checked in  Installer Properties Prerequisites. The installation .msi is created but it installs only my application, I don't see Enterprise Library installed.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial