<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx</link><description>A while back, two sets of engineers were arguing whether simply calling an EXE custom action would be good enough for Windows Installer based package. The first team with the EXE didn't want to do the work to move to Windows Installer but they really</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>  Integration Hurdles for EXE Custom Actions at Vevz.com</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5549893</link><pubDate>Sat, 20 Oct 2007 19:54:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5549893</guid><dc:creator>  Integration Hurdles for EXE Custom Actions at Vevz.com</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.vevz.com/integration-hurdles-for-exe-custom-actions"&gt;http://www.vevz.com/integration-hurdles-for-exe-custom-actions&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5593553</link><pubDate>Mon, 22 Oct 2007 11:00:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5593553</guid><dc:creator>Dennis Bareis</dc:creator><description>&lt;p&gt;The above is very useful and I have linked to it from my documentation but I find it amusing that this page (titled &amp;quot;Specifying the Order of Self Registration&amp;quot;) exists in the SDK to tell use to use an EXE CA:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://msdn2.microsoft.com/en-us/library/aa372020.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa372020.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And msiexec.exe is particularly bad in any case as it doesn't return a non-zero return code on error (so success can't be determined)...&lt;/p&gt;
</description></item><item><title>Link to analysis of possible issues with EXE custom actions in Windows Installer</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5602574</link><pubDate>Mon, 22 Oct 2007 19:03:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5602574</guid><dc:creator>Aaron Stebner's WebLog</dc:creator><description>&lt;p&gt;Robert Flaming has posted a helpful analysis of the issues that need to be considered when using EXEs&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5606884</link><pubDate>Mon, 22 Oct 2007 21:51:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5606884</guid><dc:creator>AJ</dc:creator><description>&lt;p&gt;&amp;lt;rant&amp;gt;&lt;/p&gt;
&lt;p&gt;Well...since we are on the topic of custom actions, how about adding support for managed code custom actions? &amp;nbsp;I know all the arguments for and against, so spare me the monotony, but this has to be one of the top requested features. &amp;nbsp;I'd be pleased as pie with real ACL support as well. &amp;nbsp;The LockPermissions table is laughable at best.&lt;/p&gt;
&lt;p&gt;Remember when script installers became archaic and legacy? &amp;nbsp;What do you think is happening to Windows Installer? &amp;nbsp;Go ahead and drop ClickOnce and focus on Windows Installer. &amp;nbsp;ClickOnce was ill-conceived from the start and from what apparently is the current roadmap will never be a viable replacement for Windows Installer.&lt;/p&gt;
&lt;p&gt;&amp;lt;/rant&amp;gt;&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5620801</link><pubDate>Tue, 23 Oct 2007 11:55:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5620801</guid><dc:creator>managedcoder</dc:creator><description>&lt;p&gt;This analysis was almost funny, probably unintentionally.&lt;/p&gt;
&lt;p&gt;I agree with AJ :-) on the managed code and YES why do we still after all these years need to use thirdparty ACL solutions.&lt;/p&gt;
&lt;p&gt;Funny thing is - for us that makes the applications that sell MS Windows - the WIX people are doing the best work at the moment. -They- are the ones that make it easier to just 'do things right'.&lt;/p&gt;
</description></item><item><title>EXE Custom Actions are Bad</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5646440</link><pubDate>Wed, 24 Oct 2007 13:10:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5646440</guid><dc:creator>Heath Stewart's Blog</dc:creator><description>&lt;p&gt;Windows Installer custom actions that launch executables (base custom action type msidbCustomActionTypeExe&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5820199</link><pubDate>Thu, 01 Nov 2007 23:38:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5820199</guid><dc:creator>gripper</dc:creator><description>&lt;p&gt;I don't consider Custom Action EXEs Bad or Good, I think one simply needs to weight the benefits with the hurdles, and this blog entry is very helpful in that regards. For teams that are simply trying to &amp;quot;push off work&amp;quot;, well... that is not a good enough reason. However, there are some cases where benefits outweigh the hurdles, especially in regards to maintenance and packaging options.&lt;/p&gt;
&lt;p&gt;I'll give you an example where I recently use an MSI EXE Custom Action.&lt;/p&gt;
&lt;p&gt;Originally, we used a Frontend User Interface Chainer to chain an MSI installer (for an application) with a non-MSI Driver Install. But we wanted to get rid of the chainer as some OEMs didn't want it, they wanted an MSI look and feel. We could rewrite the chainer, or just find a way to add drivers directly to the MSI.&lt;/p&gt;
&lt;p&gt;Then I experimented with the DiFxApp MergeModule. This integrated the drivers behavior directly into the MSI. However this proved to have maintenance drawbacks. Basically, our application is not tied tightly to the driver INF packages, and various customers will get different driver packages. When I was using DiFxApp, we would need to rebuild the MSI projects with the different driver combinations. These needed to be re-qualified by QA, even if the binaries inside the package (other then the drivers, of course) didn't change.&lt;/p&gt;
&lt;p&gt;So I investigated this Custom Action EXE mechanism, and it seems to work pretty well. Originally I was going to simply use DPInst, but then I created my own Driver Installer that does what DPInst does, plus is “MSI Aware”.&lt;/p&gt;
&lt;p&gt;This allows one to mix and match drivers at will with the current MSI, so QA can have a warm fuzzy that the MSI didn't change, and only the driver files did.&lt;/p&gt;
&lt;p&gt;We can churn out various variations of the app/drivers for various OEM customers in minutes. Oh, and as another value added feature of this implementation, if an OEM doesn’t want the app, they just get the very same directory with the Drivers files and Custom Action EXE, and use the Custom Action EXE in “standalone” mode to install drivers (akin to DPInst.exe).&lt;/p&gt;
&lt;p&gt;And packaging the launching logic into a Reconfigurable MergeModule (where a developer can quickly add the relative path to where the Custom Action EXE is on their media) makes integration with new install projects and builds a snap.&lt;/p&gt;
&lt;p&gt;I do agree this doesn't make sense for true application components. I definitely wouldn't want to use an external EXE to install app-settings, such as more files, registry keys, shortcuts, etc. That is what MSI is for! But I consider the whole DiFxApp mechanism as a half-hearted attempt at not providing a true external EXE for DPInst.exe, anyway.&lt;/p&gt;
&lt;p&gt;Oh, and I have found ways of linking to the MSI progress bar and status text. It would be awesome for one of the MSI team members, or one of you MSI gurus to give an example of how one can find a handle to the ActiveDatabase from an external EXE, to allow a tighter integration with an external EXE Custom Action. I want to do this in my next respin, so I can add full costing support, and support the cancel (right now I simply disable the cancel button when my Custom EXE runs, enabling Cancel after it finishes). I have some ideas on how to do this already, but it would be nice to hear it from the source, so to speak.&lt;/p&gt;
&lt;p&gt;I know why I can't just get the handle directly, because each custom action runs in its own server, and the handle will change or disappear based on the scope of its owner. However, it would be cool if there was a way that allowed an external EXE to get the handle to its own server from some property or something that can be appended to the command line to the EXE when the server launches the EXE (via Type 2 or Type 18, or Type 50), so you don't have to always use a CA Type 1 DLL wrapper function just to do this.&lt;/p&gt;
&lt;p&gt;Sometimes I get frustrated, with all the custom action types, why-oh-why does it always eventually return to a Type 1 for everything? It seems whenever I venture to another CA base type, it works for 95% of what I need, but there is always some shortcoming which causes me to go back to good-old Type 1.&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#5916853</link><pubDate>Mon, 05 Nov 2007 22:36:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5916853</guid><dc:creator>Adam</dc:creator><description>&lt;p&gt;I would love to hear how a VS2005 tool vendor should handle having to run devenv.exe /setup without an EXE custom action.&lt;/p&gt;
</description></item><item><title>The good, the bad, and the ugly - custom action types</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#6456673</link><pubDate>Wed, 21 Nov 2007 18:16:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6456673</guid><dc:creator>InstallSite Blog</dc:creator><description>&lt;p&gt;I&amp;amp;#39;d like to add my thoughts to the recent discussion about how bad custom actions are, and which&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#7023637</link><pubDate>Tue, 08 Jan 2008 07:14:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7023637</guid><dc:creator>Erik</dc:creator><description>&lt;p&gt;Hey Robert! Great article! I had to make one quick comment though about, &amp;quot;There is no way to debug custom actions in EXE from MSI&amp;quot;. True you cannot use MSIBreak but I used to use several methods to get at EXEs through debugging when I was in PSS. You can attach to the custom action server, if this is not out in the field you could do message boxes, or break before the custom action using another custom action, you could do &amp;quot;Image File Execution Options&amp;quot; on MSIExec.exe. But I agree it is much harder to debug.&lt;/p&gt;
</description></item><item><title>re: Integration Hurdles for EXE Custom Actions</title><link>http://blogs.msdn.com/windows_installer_team/archive/2007/10/20/integration-hurdles-for-exe-custom-actions.aspx#7139509</link><pubDate>Thu, 17 Jan 2008 07:43:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7139509</guid><dc:creator>Christopher Painter</dc:creator><description>&lt;p&gt;Adam, you are so right! &amp;nbsp;Even WiX.MSI calls devenv /setup to install the Votive project and item templates.&lt;/p&gt;
&lt;p&gt;BTW, I'm just now starting down the road of deploying VSTO 3.0 addin's for MS Office 2007. &amp;nbsp;I want to use MSI not ClickOnce because I'm also deploying a bunch of other stuff. &amp;nbsp; Anyone want to tell me how to install the .VSTO without using an EXE CA to call VstoInstaller.exe ?&lt;/p&gt;
</description></item></channel></rss>