Groups | Blog | Home
all groups > dotnet framework > march 2008 >

dotnet framework : Deployment of Third-Party Assemblies to GAC


Robert E. Flaherty
3/30/2008 11:06:00 AM
I'm in the process of converting a VB6.0 collection of programs to C# 3.5.
The new applications use Crystal Reports 2008, FarPoint spread and some
Telerilk controls.

The suite of applications are used by both my local client plus a few other
client in other parts of the country. Therefore, the ablitiy to provide a
reliable method to upgrade and bug fixs is important.

My current thinking (or maybe just hope) is to have a Widows installer to
install the Crystal Reports, FarPoint spread and Telerik assemblies to a
client's GAC. The frequency of updating any of these assemblies would be
much less than the upgrading of my applicaiton assemblies.

I trust if this is possbile, than I could use ClickOnce as a deployment
method for my assemblies.

My first question is: Is this approach doable and reasonable?

My second question is: If the answer to the first question 'Yes", than how
does one create a Windows Installer to the GAC for these third-party
assemblies? Is it possible to include the vendor's product key in the
Windows Installer? (When a run the Crystal Report distribution run-time on a
client machine, it asks for my product key. I am just not comformable
passing out my product keys to clients.)
RobinS
3/30/2008 7:41:13 PM

"Robert E. Flaherty" <RobertEFlaherty@discussions.microsoft.com> wrote in
message news:8FB997C5-B4B0-4026-AF11-A45E26F31ED3@microsoft.com...
[quoted text, click to view]

The answer to the first question is "Yes". But are you are certain the dll's
need to be installed in the GAC? You might try to deploy them locally (on
the references, set copy to always) and see if they work that way. If they
do, then that's one less headache.

We thought we were going to have to install DirectX in the GAC, but found we
can install it locally. The advantage of it is that you know exactly what
version you are using; if you want to upgrade it, you can; and the user can
not mess up YOUR software by installing some program that upgrades the
version of those in the GAC (and you can't mess up somebody else's
software).

I don't know how you would create a Windows Installer for these (not my
field of expertise). You *can* do that with Visual Studio, though. If the
original vendors have a redistributable package, you can deploy that as a
prerequisite.

You can add prerequisites to the list in VIsual Studio by running the
Bootstrap Manifest Generator on the installation package you want added as a
prerequisite. You can find that software on CodePlex. After you do that,
then you can select your prerequisite, and the bootstrapper will run it
before running the ClickOnce installation.

RobinS.
GoldMail.com
Frans Bouma [C# MVP]
3/31/2008 12:59:37 AM
[quoted text, click to view]

Microsoft's guidelines for the GAC are clear: don't add an assembly to
the GAC unless you really REALLY have to. The best way is to deploy
local to the application using them, even if you have two applications
using the same dlls.

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
AddThis Social Bookmark Button