[wix-users] heat generates different wxs after compiler change of our com dll

Zoli P zoli289 at googlemail.com
Fri Jul 28 04:54:56 PDT 2017


Thanks your tip Rob,

RegSpy2 showed the same: same reg keys are created, the only one difference
is in a value: vs2008 stores path in short format, vs2015 stores in long
format between quotes.

We are on an older version of Heat (3.0.5210) - that has no source.
Downloaded the latest, (3.11), that generates the same (good .WXS one) for
vs2008 dll's, but does not run on vs2015 dll's, fails with a strange
message:

>heat file OurComLib.dll -srd -suid -out t:\heat_output.tmp

Windows Installer XML Toolset Toolset Harvester version 3.11.0.1701
Copyright (c) .NET Foundation and contributors. All rights reserved.

heat.exe : error HEAT0001 : Illegal characters in path.

Exception Type: System.ArgumentException

Stack Trace:
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean
checkAdditional)
   at System.IO.Path.GetFileName(String path)
   at
Microsoft.Tools.WindowsInstallerXml.Extensions.UtilFinalizeHarvesterMutator.MutateComponents()
   at
Microsoft.Tools.WindowsInstallerXml.Extensions.UtilFinalizeHarvesterMutator.Mutate(Wix
wix)
   at Microsoft.Tools.WindowsInstallerXml.Mutator.Mutate(Wix wix)
   at Microsoft.Tools.WindowsInstallerXml.Tools.Heat.Run(String[] args)

However, passing other file, like itself (heat.exe file heat.exe  -srd
-suid -out t:\bin_heat.tmp), it works fine.

Looks heat really does not like vs2015...
And we also have com visible .net components..don't even want to think what
would heat say for those

I should maybe start to debug it, or have a look at wix sources.
Or think about an xslt which will "fix" the wxs for vs2015 dlls.


On Thu, Jul 27, 2017 at 9:00 PM, <robert_yang at agilent.com> wrote:

> Another tool you might look into is RegSpy2 - it does something similar to
> Heat, but initializes the registry with the ATL registrar, and creates a
> .reg output.  It's a bit obscure, but google should pull up some info.
> That should allow you to figure out what is actually different between the
> two DLL's.  You might be able to use that info to correct the problem in
> your new DLL.
>
> I actually haven't dealt with harvesting COM object registrations for
> years, so I can't say if there has been a recent regression in Heat or not.
>
> It might also be interesting to look at the Wix code which does the
> harvesting: check out \src\ext\UtilExtension\wixext, specifically
> RegistryHarvester.cs, DllHarvester.cs, UtilHarvesterMutator.cs and their
> friends ...
>
> -Rob
>
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>



More information about the wix-users mailing list