The topic of automating Heat has come up several times on the Users list. I haven't seen anyone post an implementation. At work I'm about to write such an extension but /only/ concerning harvesting specific COM visible DLLs. I'm reading about Wix Extensions and brushing up on the Component Rules. Our goal is that when COM-registration-information changes for any assemblies, we won't have to change anything by hand. We have a plan, further below if you're interested, but really I just had some questions for the community.
*Questions for the community:* - Has this already been done? - Are there any special considerations I should know about beyond keeping Id's, guids, and certain xml attributes the same from build to build? We're doing this all by hand right now, and it seems to work. I'd just be automating the process. - Does this sound generic enough to be useful to the community? For details see our plan is below. Let me know if you have any better ideas or tips for keeping it generic/extensible. Wisdom and input are welcomed. Thanks :) *Our plan:* We'll write an extension that reads the product's Wix code, selectively runs heat, "doctors up" the output, and adds references to import the Heat-fragments at build time (the product's Wix code is not modified on disk). Here's more detail if that didn't make sense: 1. The product's Wix code would have a component and file element for each COM visible DLL, except we would embellish them to mark for COM registration. 2. The extension would run heat on the DLL if it has changed from the last run (we'd preserve heat output and compare date stamps). 3. From the component and file elements, the extension would get component Id, component guid, a properly parameterized source path, and other file attributes which would then be be filled-in inside the fragment that Heat produced. 4. The original component/file element would be removed and a reference to the fragment file added. This is only during the build process, not a change in the product's actual WXS file. I think we would also need to add, as a file link, the Heat-produced-fragment to the visual studio project. 5. I think that should do it. Each time the project is compiled, any COM registration changes will be detected and Heat will be re-run as appropriate. We should also try to clean up old, no-longer-referenced Heat fragments. - John Burak -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/I-m-automating-heat-could-use-some-input-tp7548043.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users