Deploy assembly to GAC with VS.NET Setup project

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a 3rd party assembly (it's an ADO.NET driver) which depends on a
couple of native (non-managed) DLLs.

On my dev machine I can place the assembly and its dependent DLLs in a
folder anywhere on my disk and run "gacutil -i AssemblyName.dll". When I do
this, an entry is created in the GAC with codebase pointing to the assembly
in my installation folder. When I run the application, the 3rd assembly
successfully finds its native DLLs: presumably it is looking for them in the
folder referenced by the Codebase property from the GAC.

Now I want to deploy this to other machines using a VS.NET setup project. I
added the 3rd party Assembly and the two dependent native DLLs to the
Application folder of my setup project, and in addition added the 3rd party
Assembly to the Global Assembly Cache folder of my setup project.

When I run Setup, the 3rd party is installed in the GAC with Codebase set to
an empty string. And if I then run an application which references the 3rd
party assembly it fails because it can't find the dependent native DLLs.

Is there a way I can use a VS.NET Setup project to get the same effect as I
have on my development machine, i.e. the 3rd party installed in the GAC with
codebase referencing the copy in my application folder?
I can't see any way of doing this using properties in the setup project,
maybe a custom action?

TIA
 
you could try a custom action that shell executes the command 'gacutil'
command, remember if you do that you will have to give the full path to the
gacutil executable.

HTH

Ollie Riches
 
I always understood gacutil is part of the SDK, therefore typically won't be
present on the target machine.
 
Back
Top