While it may not be optimal, you could use an XSLT to remove the unwanted 
elements. If I had to guess, the scom element simply tells heat to use the MSI 
Registry table instead of the TypeLib (and related) tables.  I seem to remember 
a post by Rob and maybe an ICE saying not to use the TypeLib due to versioning 
issues.  

So, if you leave out the scom from the command line, you should be able to 
write an XSLT to only copy elements if they don't have TypeLib for an element.

Untested quick hack to follow:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:wix="http://schemas.microsoft.com/wix/2006/wi";
  exclude-result-prefixes="msxsl wix">
  <xsl:output method="xml" indent="yes"/>
  <xsl:namespace-alias result-prefix="#default" stylesheet-prefix="wix" />

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="wix:TypeLib ">
  </xsl:template>
</xsl:stylesheet>
-----Original Message-----
From: JohnB [mailto:john.bu...@telvent.com] 
Sent: Tuesday, January 08, 2013 2:43 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Heat.exe, "suppress COM" usage (-scom)

I'm harvesting a directory/file structure.  I do not want COM visible files to 
be COM registered - this is for a server-side product that doesn't use 
registry-based COM.  Some of the assemblies are COM visible, so heat harvests 
registry information.  I tried adding the "suppress COM" (-scom) option, but it 
still harvests COM registration information.  It would also be nice if it 
didn't try to load dependencies while harvesting.  I just want 
directories/files.

The heat call I'm making is:
heat.exe dir <path> -dr <directoryId> -nologo -srd -suid -scom -svb6 -wx -o 
<file>

I'm curious what the -scom flag is supposed to do.  The only documentation I 
can find is the usage statement "suppress COM elements".  If I compare 
with/without, the differences I see are that without the flag there are Class 
and ProgID elements, but with the flag there are, instead, additional 
RegistryValue elements that appear to do the same job.  Perhaps someone can 
shed some light on what -scom is intended for?



--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Heat-exe-suppress-COM-usage-scom-tp7582733.html
Sent from the wix-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and 
more. Get SQL Server skills now (including 2012) with LearnDevNow -
200+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only - learn more at:
http://p.sf.net/sfu/learnmore_122512
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS
and more. Get SQL Server skills now (including 2012) with LearnDevNow -
200+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only - learn more at:
http://p.sf.net/sfu/learnmore_122512
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to