[wix-users] Installing an assembly to the GAC when the file is already present on the target machine

rpapo at comcast.net rpapo at comcast.net
Wed Sep 16 04:33:43 PDT 2020


New problem.  Is it possible to install an assembly to the GAC when that
assembly is already present on the target machine and you cannot
redistribute that assembly due EULA restrictions?

I know how you install assemblies to the GAC, and how to install private
assemblies, where in both cases the assemblies are coming from the installer
build machine.  That all works.  I have a slightly different situation to
resolve.

The case in point is this: the assemblies ENVDTE.dll and ENVDTE80.dll (all
of the ENVDTE* assemblies, really) are not included in the Microsoft Visual
Studio redistributables agreement.  They have their reasons for this, and
that's fine.  Previously, from Visual Studio 2008 through Visual Studio
2017, these assemblies were installed to the GAC as part of the Visual
Studio install.  That is no longer true with Visual Studio 2019.  In fact,
there is no trace in the public registry of these files.  Presumably there
is in the Visual Studio private registry.

Microsoft still makes these files available in two places: 

	C:\Program Files (x86)\Common Files\Microsoft
Shared\MSEnv\PublicAssemblies 
	C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\Common7\IDE\PublicAssemblies

They are simply not present in the GAC.

Is it possible to define a <FILE> where the source is on the target machine
rather than the installer build machine?

Alternatively, is it possible to use GACUtil in a WiX custom action, and if
so, what is the recommended way of doing this?

--Rick Papo



More information about the wix-users mailing list