tag:blogger.com,1999:blog-985159635193633235.post7688100151222727699..comments2024-03-25T00:30:02.127-07:00Comments on ISWIX: Deployment Tools Foundation (DTF) Managed Custom ActionsChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-985159635193633235.post-67614034861721377602008-06-17T06:52:00.000-07:002008-06-17T06:52:00.000-07:00Can Custom Actions written in managed code using D...Can Custom Actions written in managed code using DTF be called from other MSI authoring tools such as InstallAware and InstallShield?Chrishttp://www.infamousdesignstudio.comnoreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-70211846418898464482008-06-17T06:59:00.000-07:002008-06-17T06:59:00.000-07:00Absolutely! :-)DTF CA's ( and InstallScript CA...Absolutely! :-)<br><br>DTF CA's ( and InstallScript CA's ) both get packaged inside a Win32 PE DLL with StdCall Function exports. In otherwords, they appear to Windows Installer as just another C++ CA and can thereby be consumed by any installation authoring tool that can author a DLL CA.<br><br><br>Whew, hope I didn't lose anyone there.Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-57759515734703195742008-06-17T08:21:00.000-07:002008-06-17T08:21:00.000-07:00Ok ... it is very clear to me that InstallScript C...Ok ... it is very clear to me that InstallScript CA's and DFT CA's will appear to Windows Installer as just a plain ole CA but with InstallAware's CallDLL function ... does the MSIcode add an entry into the CA table or do they have a CA in the middle that handles calling external DLLs? Do you follow?Chrishttp://www.infamousdesignstudio.comnoreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-15049696130276789842008-06-17T08:38:00.000-07:002008-06-17T08:38:00.000-07:00MakeSfxCa will package everything ( including the ...MakeSfxCa will package everything ( including the `man in the middle` ) into a single DLL which the MSI authoring tool needs to consume and eventually get into the CA table. Nothing special beyond that needs to be done because when the function is called (whether streamed from the binary table or invoked from an installed component ) the function will then self extract it's resources, fire it up, start the IPC channel, fire up the CLR, fire the CA host, establish IPC communication and then use reflection to call into your code making the handle / session object available. It also handles exceptions and cleans up after itself when it's done.<br><br>I hope that answers your question.Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-77158856115819496162008-07-26T21:51:00.000-07:002008-07-26T21:51:00.000-07:00As I understand, the MMsiBreak variable is used in...As I understand, the MMsiBreak variable is used in the same manner as the MsiBreak variable, i.e. adding it as an environmental variable with a value of the name of the CA.<br>I used the MessageBox method, and when attaching (via VS2005), the name of the executable was not what I expected, so how do I know what value to use?Schmulinoreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-14401710779025556862008-07-27T06:19:00.000-07:002008-07-27T06:19:00.000-07:00You've just given me an idea for a new video b...You've just given me an idea for a new video blog demonstraing DTF debugging. <br><br>I'll try to have it soon.Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.comtag:blogger.com,1999:blog-985159635193633235.post-10266011477267702862008-07-28T15:20:00.000-07:002008-07-28T15:20:00.000-07:00Hmmm, not to rag on InstallAware, but I had no ide...Hmmm, not to rag on InstallAware, but I had no idea that it didn't support MSI Custom Actions<br><br>http://www.installaware.com/forum/viewtopic.php?t=3726&sid=e94022131f19903ba43fb12bd4d6d304<br><br>I guess you could always tweak the resultant MSI to wire in your CA but I suppose the whole concept of InstallAware with there `MSICode` is that you aren't supposed to have to understand anything about MSI.<br><br>Hmm....Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com