Avatar of Lasta
Lasta
 asked on

VS 2010 Installer Project: how to deploy Enterprise Library

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.
.NET Programming

Avatar of undefined
Last Comment
Lasta

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
disrupt

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
Lasta

ASKER
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
disrupt

Lasta

ASKER
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.
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
disrupt

Lasta

ASKER
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).
disrupt

Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.
disrupt

Lasta

ASKER
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.