<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkcEQXk-eyp7ImA9WxBWF0k.&quot;"><id>tag:blogger.com,1999:blog-9537945</id><updated>2010-02-09T14:40:00.753-06:00</updated><title>DeploymentEngineering.com - The Blog</title><subtitle type="html">A panel of experts discuss cutting edge ideas related to the Source Control, Build Automation, Setup Authoring and Automated Application Deployment.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.deploymentengineering.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>283</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/DeploymentEngineering" /><feedburner:info uri="deploymentengineering" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;AkcEQXk9eCp7ImA9WxBWF0k.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-411944753421313133</id><published>2010-02-06T20:18:00.008-06:00</published><updated>2010-02-09T14:40:00.760-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-09T14:40:00.760-06:00</app:edited><title>Looking back, nothing has changed.</title><content type="html">The other day I was reading that Martin Fowler will be visiting Austin giving a presentation on "What Agile really means to the future of software development".&lt;br /&gt;&lt;br /&gt;I'm sure Martin is better then most ( he did after all sign off on a Continuous Integration book written by a good friend of mine - Paul Duvall ) but most evangelists and developers that I've met think very little of setup.&lt;br /&gt;&lt;br /&gt;This reminds me back to something that Bob Baker wrote over 10 years ago in the Official InstallShield for Windows Installer Developer's Guide book.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;"The main problem that is faced by the setup developer is that he creation of the installation for an application is normally left to the last minute just before the product has to ship. This is because setup is not considered part of the development process."&lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;It's now the year 2010 and this is still true now more then ever. I've been doing setup development since 1997 and the one thing that is a near constant is that developer always treat setup related tasks and the setup developer himself as second class citizens. They assume that because your working on the install that you must be a development flunky. This is probably because that's the way it's been everywhere else they have ever worked.&lt;br /&gt;&lt;br /&gt;Frankly it's really annoying. Seriously, just how many times can you take some new developer coming into your office, looking at the setup problem domain from 50,000 feet, claiming that it's easy in a condescending tone and then refusing to provide meaningful participation in solving the problem?  BTW, can you get this done by tonight's build?  That would be grrrrreaaaaaat. &lt;office_space_voice/&gt;&lt;br /&gt;&lt;br /&gt;These guys can talk a mean talk about Agile, Scrum, Lean, TDD, IoC, MVVM, ASP.NET MVC, Separation of Concerns, Single Responsibility ( and so on and so on ) but they always wait until the last second to come to you to get their install done and God forbid you see a problem with their design that effects setup because frankly they just won't care because 'it's already done; this needs to ship next week'. If you try to explain to them that they should learn setup and include it in their Agile and Lean believes they suddenly become very disinterested.&lt;br /&gt;&lt;br /&gt;Since your bothering to read this I'll assume your a setup guy and have already witnessed this. But let's assume for a moment that your not and you don't believe me. To date, 500,000 questions have been asked on StackOverflow. Here are are the top 10 tags in popularity:&lt;br /&gt;&lt;br /&gt;c# 61927&lt;br /&gt;java 34410&lt;br /&gt;.net 32759&lt;br /&gt;asp.net 28696&lt;br /&gt;php 27893&lt;br /&gt;javascript 25159&lt;br /&gt;c++ 24402&lt;br /&gt;jquery 18771&lt;br /&gt;python 17964&lt;br /&gt;iphone 16413&lt;br /&gt;&lt;br /&gt;This is a total of 288,394 question or apx 58% of the total. Now lets see how many questions have been asked about setup:&lt;br /&gt;&lt;br /&gt;msi 469&lt;br /&gt;wix 439&lt;br /&gt;installshield 142&lt;br /&gt;installaware 5&lt;br /&gt;wise 15&lt;br /&gt;installer 763&lt;br /&gt;windows-instaler 357&lt;br /&gt;install 231&lt;br /&gt;&lt;br /&gt;This represents a total of 2421 questions or 0.5% of the total. Truly sad IMO.  &lt;br /&gt;&lt;br /&gt;Then there is a dearth of interest at code camps and conferences.  For example, someone recently told me that at a recent Microsoft PDC they attended a deployment focus group.  He indicated that it looks like they had swag for 12 people and that 4 people actually showed up.&lt;br /&gt;&lt;br /&gt;Think about that.  Of all the thousands of developers who attended PDC, only 2 of them had enough of an interest in setup to attend a focus group.&lt;br /&gt;&lt;br /&gt;However, there is a bright side: Setup isn't going away. Projects of all sizes continue to need deployment solutions that work. Yes, this is a niche field with little respect, but there is some real good money to be made if you are willing to commit yourself to learning everything possible and become the world beater that can make things happen. You will have so little competition from your peers because they don't have a clue just how important setup actually is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-411944753421313133?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/vQSzSEBR-p8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/411944753421313133/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=411944753421313133" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/411944753421313133?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/411944753421313133?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/vQSzSEBR-p8/looking-back-nothing-has-changed.html" title="Looking back, nothing has changed." /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2010/02/looking-back-nothing-has-changed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMBRnwzcSp7ImA9WxBXF0k.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-3235392079162960216</id><published>2010-01-28T22:32:00.005-06:00</published><updated>2010-01-28T22:47:37.289-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T22:47:37.289-06:00</app:edited><title>Doppelgängers</title><content type="html">Considering it's Doppelgänger week on Facebook, I thought I'd mention that I have my very own Doppelgänger at work and his name is, well,  Chris!&lt;br /&gt;&lt;br /&gt;See, I share an office with another Chris.  Yes, the jokes abound.  Let's see, there's  Chris 1 and Chris 1, Chris P and Chris T and Chris Squared.  &lt;br /&gt;&lt;br /&gt;It's actually kind of wierd because we implement practically all the same interfaces.  People will come into our office and just say "Chris?"  and then settle for whoever happens to answer first.    Sometimes we just sit there silently the other Chris will be explicitly requested.&lt;br /&gt;&lt;br /&gt;Sure, there are differences between us.  He's been with the same company for 8 years while in the last 8 years I've been with, well, 8 companies!   We take turns being the installer team lead.  He usually has the helm when I leave to work elsewhere &lt;strong&gt;gladly &lt;/strong&gt;giving it back to me when I return.   What a friend... I think. :-)&lt;br /&gt;&lt;br /&gt;Did I mention that he really gets it when it comes to setup and that he's joined the DeploymentEngineering.com blog team?&lt;br /&gt;&lt;br /&gt;While he hasn't actually posted yet, I do know that he has an interesting story to write regarding his trip out to PDC last fall and a deployment focus group he attended.&lt;br /&gt;&lt;br /&gt;Maybe if everyone says hello he'll actually get around to hitting the submit button.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-3235392079162960216?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/m6N-V387xQ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/3235392079162960216/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=3235392079162960216" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3235392079162960216?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3235392079162960216?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/m6N-V387xQ4/doppelgangers.html" title="Doppelgängers" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2010/01/doppelgangers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8HR34yeCp7ImA9WxBXFEs.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-2691504723741025954</id><published>2010-01-25T17:32:00.002-06:00</published><updated>2010-01-25T17:40:36.090-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-25T17:40:36.090-06:00</app:edited><title>Still Hiring in Austin, TX</title><content type="html">As I posted last summer, I'm still looking for experienced software engineers in the area of Install, Build and/or Internal Tools development.&lt;br /&gt;&lt;br /&gt;Desired skills include InstallShield, MSI, WiX, BuildForge, ClearCase, TFS, C# .NET 3.5 ( Winforms, WPF, ASP.NET and Linq 2 XML).&lt;br /&gt;&lt;br /&gt;There are several available roles with different emphasis on the above skills. In general, the engineer will be part of a Build/Install/Internal Tools team that currently consists of 11 members with additional on the way to meet our ever growing needs.&lt;br /&gt;&lt;br /&gt;Please contact me at chrpai@deploymentengineering.com if you are interested. &lt;br /&gt;&lt;br /&gt;Please note, due to customer requirements, all applicants must be a US citizen. Ability to obtain and maintain a US Security Clearance is required; an active clearance is highly desirable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-2691504723741025954?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/e7TtEyQWm3E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/2691504723741025954/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=2691504723741025954" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/2691504723741025954?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/2691504723741025954?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/e7TtEyQWm3E/still-hiring-in-austin-tx.html" title="Still Hiring in Austin, TX" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2010/01/still-hiring-in-austin-tx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCRno-eyp7ImA9WxBRFko.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-1632028520485907833</id><published>2010-01-04T23:38:00.004-06:00</published><updated>2010-01-04T23:59:27.453-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-04T23:59:27.453-06:00</app:edited><title>Shared Resources Are Imaginary and Feature Gap Is Real</title><content type="html">I was reading a blog &lt;a href="http://blogs.msdn.com/heaths/archive/2009/12/21/about-shared-components.aspx"&gt;post&lt;/a&gt; from Heath Stewart:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;Components are the basic unit of installation in a Windows Installer product. They are installed by one or more features, and can contain any number of resources including files, assemblies, registry values, and are recommended for custom resources as well. Examples of custom resources are web sites, virtual directories, SQL tables, and stored procedures.&lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;While it's an interesting read, albeit covering 10 year old concepts, I have a problem with the last little bit about "custom resources". Well, two problems:&lt;br /&gt;&lt;br /&gt;1) Windows Installer doesn't expose the concept of "custom resources". This is entirely made up. Don't believe me? Then tell me how to mark a custom resource as the key-file for self repair checks? How do you involve the custom resource for costing purposes? Sure, you can write data driven custom actions that associate themselves conditionally to a component, but your out of process custom action will never really implement resources. &lt;br /&gt;&lt;br /&gt;2) Why doesn't MSI already handle all these examples that are presented as "custom resources". Seriously, what (enterprise) application these days doesn't store data in XML or relational databases and/or present application layers as web apps or web ui? Wasn't Windows Installer intended to solve enterprise TCO issues?&lt;br /&gt;&lt;br /&gt;Sorry, but the feature gap here is just mind boggling if you ask me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-1632028520485907833?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/p1O6wHQ3dHo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/1632028520485907833/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=1632028520485907833" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/1632028520485907833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/1632028520485907833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/p1O6wHQ3dHo/shared-resources-are-imaginary-and.html" title="Shared Resources Are Imaginary and Feature Gap Is Real" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2010/01/shared-resources-are-imaginary-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEHQn06fCp7ImA9WxNUGEs.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-7936767701242073388</id><published>2009-11-10T07:43:00.001-06:00</published><updated>2009-11-10T07:43:53.314-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T07:43:53.314-06:00</app:edited><title>Happy 234th Birthday Marines!</title><content type="html">&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/C7fTppX5swo&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/C7fTppX5swo&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Oohrah my fellow Marines!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-7936767701242073388?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/l3i5e2-rPgQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/7936767701242073388/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=7936767701242073388" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7936767701242073388?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7936767701242073388?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/l3i5e2-rPgQ/happy-234th-birthday-marines_10.html" title="Happy 234th Birthday Marines!" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/11/happy-234th-birthday-marines_10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMQnY9eSp7ImA9WxNVFU8.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-8447302469890175808</id><published>2009-10-25T20:49:00.002-05:00</published><updated>2009-10-25T21:04:43.861-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T21:04:43.861-05:00</app:edited><title>InstallAware Give Away Results</title><content type="html">I'd like to thank Sinan at InstallAware for his generous offer of a InstallAware Developer license to readers of this blog. The offer started on Tuesday and went until Friday. During that period this blog had 1379 page loads from 859 unique visitors. Sinan Karaca reports to me that they gave away 56 free licenses worth $83,944.00.&lt;br /&gt;&lt;br /&gt;In other news, the Federal Trace Commission has adopted new guidelines that requires blogs to disclose endorsement compensation. As such I've posted an official disclosure stating the position of this blog. In summary, this blog has never and will never accept any form of compensation. We will however pass on swag opportunities to our readers when given the chance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-8447302469890175808?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/IvG1HBuNlUM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/8447302469890175808/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=8447302469890175808" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8447302469890175808?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8447302469890175808?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/IvG1HBuNlUM/installaware-give-away-results.html" title="InstallAware Give Away Results" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/10/installaware-give-away-results.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8CQ3k-cCp7ImA9WxNVEkQ.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-3626301518983393786</id><published>2009-10-20T17:22:00.009-05:00</published><updated>2009-10-23T06:37:42.758-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-23T06:37:42.758-05:00</app:edited><title>InstallAware Complimentary License Announcement</title><content type="html">Update: Per Sinan, this offer has expired.&lt;br /&gt;&lt;br /&gt;In a recent &lt;a href="http://blog.deploymentengineering.com/2009/10/installaware-uninstall-problem.html"&gt;blog comment&lt;/a&gt;,  Sinan Karaca posted:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;In fact, anybody reading this blog and wanting to check out just how revolutionary InstallAware is, send sales at installaware.com an email with the subject "Painter License" and we'll send out a complimentary Developer license your way. Till this Friday only :)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Sinan&lt;/em&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Well, who am I to pass up an opportunity for my readers to get a free copy of InstallAware?  So if you feel like trying something new  to fire off your email request.&lt;br /&gt;&lt;br /&gt;Note:  InstallAware requires a non-anonymous email address ( no gmail, yahoo, msn ) and DeploymentEngineering.com is not affialated with InstallAware and has no role or responsibility in this give away promotion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-3626301518983393786?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/A3DM9A1A-EI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/3626301518983393786/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=3626301518983393786" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3626301518983393786?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3626301518983393786?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/A3DM9A1A-EI/installaware-complimentary-license.html" title="InstallAware Complimentary License Announcement" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/10/installaware-complimentary-license.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMHQ3w6eyp7ImA9WxNVEE0.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-3272262068329024427</id><published>2009-10-19T21:07:00.005-05:00</published><updated>2009-10-19T21:40:32.213-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-19T21:40:32.213-05:00</app:edited><title>InstallAware Uninstall Problem</title><content type="html">I was reading a news release where InstallAware boasted:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"InstallAware setups power the installation of the Activation Assistant for Microsoft Office 2007, pre-installed by OEMs on millions of laptops around the world," says Sinan Karaca, founder of InstallAware Software Corporation.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I decided to &lt;a href="http://www.google.com/search?q=activation+Assistant+for+Microsoft+Office+2007&amp;rls=com.microsoft:en-us&amp;ie=UTF-8&amp;oe=UTF-8&amp;startIndex=&amp;startPage=1"&gt;google&lt;/a&gt; "Activation Assistant for Microsoft Office 2007" and the results indicate that millions of people around the world can't get this software removed from their box. Way to go Microsoft and InstallAware! I don't have access to the installer, but from the symptoms I'm reading, it sounds like somebody forgot to listen to sage advice of always including "or Installed" in their LaunchConditions.&lt;br /&gt;&lt;br /&gt;Anyways, the install issue caught the attention of &lt;a href="http://blogs.pcworld.com/tipsandtweaks/archives/006874.html"&gt;PCWorld&lt;/a&gt;. Here's a snippet of the write up that is really worth reading.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Activation Assistant's Dirty Little Secret&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;It turns out that the Activation Assistant for Office 2007 has been a serious hassle for Microsoft. According to Joe, the Activation Assistant accounts for the great majority of tech-support calls. He wasn't specific, but said that the program is basically flawed. Apparently there's a fix coming in Office 14. &lt;br /&gt;&lt;br /&gt;In fact, the Activation Assistant is so troublesome that when I suggested that we just reinstall the dang thing, he flat-out refused. He said that would likely cause more problems--and I don't argue with escalation managers...&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So maybe InstallAware should dig a little deeper when trying to reference "successful" projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-3272262068329024427?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/m5k2KTY2FWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/3272262068329024427/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=3272262068329024427" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3272262068329024427?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3272262068329024427?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/m5k2KTY2FWo/installaware-uninstall-problem.html" title="InstallAware Uninstall Problem" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/10/installaware-uninstall-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMGQ3s8fCp7ImA9WxNWGUQ.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-3811109720857160595</id><published>2009-10-19T19:17:00.003-05:00</published><updated>2009-10-19T19:27:02.574-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-19T19:27:02.574-05:00</app:edited><title>InstallAware resorts to Sex Appeal</title><content type="html">&lt;a href="http://1.bp.blogspot.com/_28H3HFywulA/St0CpM8hLVI/AAAAAAAAAOc/vP0TspZZm-g/s1600-h/installaware.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 369px;" src="http://1.bp.blogspot.com/_28H3HFywulA/St0CpM8hLVI/AAAAAAAAAOc/vP0TspZZm-g/s400/installaware.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5394470835532672338" /&gt;&lt;/a&gt;&lt;br /&gt;It's an old adage that "sex sells" in marketing.  But surely there is no space less sexy then setup development tools, right?&lt;br /&gt;&lt;br /&gt;Well, it seems InstallAware has sunken to new lows by engaging with marketing partners to spam the twittersphere using what I can only assume are astroturfing fake profiles.   Their PR angle is that they a shining example of stability in light of InstallShields multiple name changes.&lt;br /&gt;&lt;br /&gt;Hmmm.  Based on the comments, emails and threads that I've been shown InstallAware could actually use a good corporate identity change right now.  The level of customer disservice (including rude attacks against customers ) that I've witnessed has been horrific.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-3811109720857160595?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/4sc2LlT38J0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/3811109720857160595/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=3811109720857160595" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3811109720857160595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3811109720857160595?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/4sc2LlT38J0/installaware-resorts-to-sex-appeal.html" title="InstallAware resorts to Sex Appeal" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_28H3HFywulA/St0CpM8hLVI/AAAAAAAAAOc/vP0TspZZm-g/s72-c/installaware.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/10/installaware-resorts-to-sex-appeal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYFQ3k-cSp7ImA9WxNWGUQ.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-9051185417528262962</id><published>2009-10-19T18:13:00.003-05:00</published><updated>2009-10-19T18:15:12.759-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-19T18:15:12.759-05:00</app:edited><title>MSDN Goes Blue</title><content type="html">&lt;a href="http://2.bp.blogspot.com/_28H3HFywulA/Stzy5qZRXnI/AAAAAAAAAOU/VrNJPbhA0HY/s1600-h/msdn_blue.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 59px;" src="http://2.bp.blogspot.com/_28H3HFywulA/Stzy5qZRXnI/AAAAAAAAAOU/VrNJPbhA0HY/s400/msdn_blue.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5394453526129761906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enough said?  &lt;grin/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-9051185417528262962?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/Xgx8lcVPvQA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/9051185417528262962/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=9051185417528262962" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/9051185417528262962?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/9051185417528262962?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/Xgx8lcVPvQA/msdn-goes-blue.html" title="MSDN Goes Blue" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_28H3HFywulA/Stzy5qZRXnI/AAAAAAAAAOU/VrNJPbhA0HY/s72-c/msdn_blue.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/10/msdn-goes-blue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEFSX4zfCp7ImA9WxNWEE8.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-7336921254859311926</id><published>2009-10-08T12:35:00.002-05:00</published><updated>2009-10-08T12:40:18.084-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-08T12:40:18.084-05:00</app:edited><title>Goodbye  Acresso, We Hardly Knew Ye</title><content type="html">I read the news today that Acresso is changing it's name to Flexera.&lt;br /&gt;&lt;br /&gt;Huh?  Why?&lt;br /&gt;&lt;br /&gt;As if the makers of InstallShield hadn't already done enough damage to their brand, let's just go change names yet again!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BTW, &lt;a href="http://flexera.net/"&gt;Flexera&lt;/a&gt; is already taken by a company in the alternative energy market. Anyone want to take a guess which one of these companies actually stands a chance of being in a high growth market for the next ten years?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-7336921254859311926?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/QhD8RumoEIg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/7336921254859311926/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=7336921254859311926" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7336921254859311926?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7336921254859311926?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/QhD8RumoEIg/goodbye-acresso-we-hardly-knew-ye.html" title="Goodbye  Acresso, We Hardly Knew Ye" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/10/goodbye-acresso-we-hardly-knew-ye.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUFQXg4fyp7ImA9WxNXE0s.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-6728453676183906861</id><published>2009-09-30T20:46:00.003-05:00</published><updated>2009-09-30T20:56:50.637-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T20:56:50.637-05:00</app:edited><title>MSSE Validation Errors</title><content type="html">I recently downloaded Microsoft's new Security Essentials Suite and I decided to take a look at how it's installer is constructed.&lt;br /&gt;&lt;br /&gt;My first observation is how they once again use an external UI to get around the fact that Windows Installer does such a poor job at localization. &lt;br /&gt;&lt;br /&gt;Then I ran MSI validation and discovered the following gem.&lt;br /&gt;&lt;br /&gt;ICE08 ERROR Component: SetupResMui_NLNL has a duplicate GUID: {1230940F-EB02-47B7-ACFF-D0E76871D928}&lt;br /&gt;ICE08 ERROR Component: MsMpResDll has a duplicate GUID: {8FEE8260-3507-417A-AF09-1C24F341FA14}&lt;br /&gt;ICE08 ERROR Component: shellextDllMui_ZHCN has a duplicate GUID: {A5F76683-9CAE-4F3F-B4FD-1668EB2C3FAD}&lt;br /&gt;ICE08 ERROR Component: SetupResMui_PTBR has a duplicate GUID: {D0D868D8-EC9D-423F-AF62-345A4EEFE3C3}&lt;br /&gt;&lt;br /&gt;I'm afraid to even ask. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-6728453676183906861?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/uFWGu6qkZtc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/6728453676183906861/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=6728453676183906861" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/6728453676183906861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/6728453676183906861?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/uFWGu6qkZtc/wsse-validation-errors.html" title="MSSE Validation Errors" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/09/wsse-validation-errors.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08AQnw5cCp7ImA9WxNXE0w.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-611812606673393898</id><published>2009-09-29T21:08:00.006-05:00</published><updated>2009-09-30T08:04:03.228-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T08:04:03.228-05:00</app:edited><title>Configuration Manager In Training</title><content type="html">&lt;a href="http://2.bp.blogspot.com/_28H3HFywulA/SsK90g37q0I/AAAAAAAAAOE/WeM5pUW8GXY/s1600-h/photo.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_28H3HFywulA/SsK90g37q0I/AAAAAAAAAOE/WeM5pUW8GXY/s400/photo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5387076814163913538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I don't talk about my family life much but today my daughter Ashley ( Age 6 in 1st grade ) wrote the cutest thing: A french toast recipe!&lt;br /&gt;&lt;br /&gt;See, I work a lot during the week ( probably too more then I should ) and on weekends I typically do the cooking. Very often I'll make french toast since they are always asking for it. It's a real big hit. &lt;br /&gt;&lt;br /&gt;I was sitting at work today when I received this picture and it just warmed my heart. Milk, Eggs, Sugar, Nutmeg, Cinnamon, Mix it up and grill it with love followed by happy!&lt;br /&gt;&lt;br /&gt;Awww, too cute.&lt;br /&gt;&lt;br /&gt;Anyways, I can tell this kid is going to love Build/CM. :-)&lt;br /&gt;&lt;br /&gt;Finally, here's the real recipe&lt;br /&gt;&lt;br /&gt;16 slices thin white bread slightly stale( none of that wheat stuff mommy likes )&lt;br /&gt;1 cup of egg beaters&lt;br /&gt;1 cup of milk&lt;br /&gt;1/2 cup of sugar&lt;br /&gt;1 tsp vanilla ( life is too short for artificial )&lt;br /&gt;1/2 tsp cinnamon&lt;br /&gt;1/4 tsp nutmeg&lt;br /&gt;&lt;br /&gt;Stir briskly with a whisk, drip bread and cook on a griddle coated with PAM heated to 325f.  Serve with "daddy eggs" ( eggs over easy @ 375f with REAL butter ) and bacon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-611812606673393898?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/xbN5hi6kNAI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/611812606673393898/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=611812606673393898" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/611812606673393898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/611812606673393898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/xbN5hi6kNAI/configuration-manager-in-training.html" title="Configuration Manager In Training" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_28H3HFywulA/SsK90g37q0I/AAAAAAAAAOE/WeM5pUW8GXY/s72-c/photo.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/09/configuration-manager-in-training.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8MRHo9cSp7ImA9WxNQF0w.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-6590058037629822644</id><published>2009-09-23T10:09:00.003-05:00</published><updated>2009-09-23T10:14:45.469-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-23T10:14:45.469-05:00</app:edited><title>Favorite InstallShield Automation Interface (Feature)Bug</title><content type="html">Does anyone actually use the InstallShield automation interface? I'm guessing not due to huge number of bugs, bad behaviors, poor documentation and missing functionality that I routinely step into every time I try.&lt;br /&gt;&lt;br /&gt;I'm too tired to recap every bug I've ever found, so here's my new favorite.&lt;br /&gt;&lt;br /&gt;Let's say you are calling the ISWiProject.AddFeature( string ) method and you pass it a feature that already exists. What would you expect the proper behavior to be?&lt;br /&gt;&lt;br /&gt;a) throw an exception that tells you that you violated a primary key constraint&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;b) throw a modal dialog telling you that you violated a primary key constrant and then swallow the exception.&lt;br /&gt;&lt;br /&gt;Argh!!!! Enough said?    I guess that's why we pay tens of thousands of dollars for maintenance and then never get our bugs fixed.  Just shoved along to new releases with more bugs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-6590058037629822644?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/JTQKHELLBjw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/6590058037629822644/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=6590058037629822644" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/6590058037629822644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/6590058037629822644?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/JTQKHELLBjw/favorite-installshield-automation.html" title="Favorite InstallShield Automation Interface (Feature)Bug" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/09/favorite-installshield-automation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4NSXw7eCp7ImA9WxNQFU4.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-1323476987652112074</id><published>2009-09-21T06:38:00.003-05:00</published><updated>2009-09-21T06:53:18.200-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-21T06:53:18.200-05:00</app:edited><title>Interesting Posting on Monster</title><content type="html">I came across this post on Monster the other day:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;If you are a WINDOWS INSTALLATION ENGINEER that has experience installing windows pre-Installshield (i.e. the old fashioned way!) - think API's, DLL's, and registry setting - this is a great opportunity for you!!&lt;br /&gt;&lt;br /&gt;Our client is seeking　a smart, experienced Windows Engineer　with an ability to work in the dynamic environment of an emerging growth company.　You will be tasked with attacking new problems and be presented daily with development challenges that will　require a high degree of versatility, mental flexibility, and innovation to solve.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This would make sense if the position if for a setup tools developer rather then setup developer, but the posting seems to clearly indicate that it's the former rather then the later.&lt;br /&gt;&lt;br /&gt;How retro?  For the love of... why??&lt;br /&gt;&lt;br /&gt;Sure, from my script days of the 90's I probably remember how to do all of this stuff but what is the value in loosing every foundation class library available?  What is the value for shunning the declarative approach of Windows Installer and doing a roll your own EVERYTHING imperative approach?&lt;br /&gt;&lt;br /&gt;I'm lost on this one.&lt;br /&gt;&lt;br /&gt;But maybe it really is for a tools position in the open source space and that something new and different will emerge.&lt;br /&gt;&lt;br /&gt;BTW, I'm reminded of an embarrasing moment.  About 6.5 years ago I was busy doing a build when the phone rang.  It was a Senior Director of Technology for Continental Airlines calling me for a phone interview.   We chatted for a minute and then he asked me how to replace a locked file on Windows.&lt;br /&gt;&lt;br /&gt;My mind drew a blank.  Sure, I knew MoveFileEx and PendingFileRename operations but I just couldn't think it at that moment.  So instead I gave some lame explanation of InstallShield having a setting for locked files and that it was a black box / white box kind of thing and that if it was to fail I'd spend time profiling it to identify the cause.&lt;br /&gt;&lt;br /&gt;The moment I hung up I thought, damn it, why didn't you talk about the Win32 APIs behind the scene?  Ughh!&lt;br /&gt;&lt;br /&gt;I ended up getting the job. &lt;br /&gt;&lt;br /&gt;A couple years later I asked him why he hired me when I couldn't answer such a simple question and he said:&lt;br /&gt;&lt;br /&gt;"Because you actually WANTED to do installs."&lt;br /&gt;&lt;br /&gt;I think that says enough about our space.  It was true then and it's true now, IMO.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_28H3HFywulA/SrdmBE6o-yI/AAAAAAAAAN8/7Rxrei9-rsw/s1600-h/jobpost.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="http://2.bp.blogspot.com/_28H3HFywulA/SrdmBE6o-yI/AAAAAAAAAN8/7Rxrei9-rsw/s400/jobpost.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5383884048230316834" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-1323476987652112074?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/R7OpdlfYWg8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/1323476987652112074/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=1323476987652112074" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/1323476987652112074?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/1323476987652112074?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/R7OpdlfYWg8/interesting-posting-on-monster.html" title="Interesting Posting on Monster" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_28H3HFywulA/SrdmBE6o-yI/AAAAAAAAAN8/7Rxrei9-rsw/s72-c/jobpost.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/09/interesting-posting-on-monster.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMESH44cSp7ImA9WxNQEUg.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-8919096301235632563</id><published>2009-09-16T20:06:00.004-05:00</published><updated>2009-09-16T20:20:09.039-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-16T20:20:09.039-05:00</app:edited><title>Name This Tool</title><content type="html">I've been working on a WiX GUI editing tool lately that I'm hoping to release as open source soon.  I can't go into many details at this point because many things aren't decided yet.&lt;br /&gt;&lt;br /&gt;One thing that I need to get settled is what to name it.  Here's where I'm hoping you can help.  If you have a suggestion for a name, please leave a comment below.&lt;br /&gt;&lt;br /&gt;Rules:&lt;br /&gt;&lt;br /&gt;After a suitable list is generated, a poll will be created where my readers will rank their priority.&lt;br /&gt;&lt;br /&gt;The final ranked list will be vetted for trademark issues and a final name will be choosen.&lt;br /&gt;&lt;br /&gt;If you'd like the glory of claiming you named the new tool, please leave your real name when posting.&lt;br /&gt;&lt;br /&gt;The final name selected becomes the property of DeploymentEngineering.com and who ever I may assign it to.&lt;br /&gt;&lt;br /&gt;For a quick tease of the new tool, click the link below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_28H3HFywulA/SrGNX_zFiyI/AAAAAAAAAN0/9gHesoSuDoU/s1600-h/nameme.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 163px;" src="http://4.bp.blogspot.com/_28H3HFywulA/SrGNX_zFiyI/AAAAAAAAAN0/9gHesoSuDoU/s400/nameme.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5382238473086667554" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-8919096301235632563?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/42MmKRTRq3c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/8919096301235632563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=8919096301235632563" title="14 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8919096301235632563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8919096301235632563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/42MmKRTRq3c/name-this-tool.html" title="Name This Tool" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_28H3HFywulA/SrGNX_zFiyI/AAAAAAAAAN0/9gHesoSuDoU/s72-c/nameme.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">14</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/09/name-this-tool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUENQHczeSp7ImA9WxNSEUs.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-3119493809275161347</id><published>2009-08-24T21:24:00.002-05:00</published><updated>2009-08-24T21:34:51.981-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-24T21:34:51.981-05:00</app:edited><title>Specifying Source Files</title><content type="html">I've been spending a lot of time lately thinking about use cases for source file location abstractions.  Some tools like Visual Studio Deployment Projects provide no abstraction and other tools such as InstallShield provide abstractions (Path Variables) based on environment variables, registry values and/or command line arguments.&lt;br /&gt;&lt;br /&gt;Then there is Wix can use different types of compiler inferences and preprocessor variables and/or extensions.&lt;br /&gt;&lt;br /&gt;Obviously this can get very complicated so I'm curious, what is your favorite way to roll and why?   What do you need and what could you live without?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-3119493809275161347?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/GHqXhl1KGbo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/3119493809275161347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=3119493809275161347" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3119493809275161347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3119493809275161347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/GHqXhl1KGbo/specifying-source-files.html" title="Specifying Source Files" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/08/specifying-source-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEEQ3c_eip7ImA9WxJbFks.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-6805533008093972040</id><published>2009-07-26T22:54:00.006-05:00</published><updated>2009-07-26T23:23:22.942-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-26T23:23:22.942-05:00</app:edited><title>Maybe I Should Roll My Own Part II</title><content type="html">Just over a year ago I played around with .NET object serialization for a day and came up with a simple little program that could build a WiX element tree, set the attributes and write the XML out.  I blogged about it &lt;a href="http://blog.deploymentengineering.com/2008/06/maybe-i-should-roll-my-own.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Since then I've taken a .NET 3.5 / WCF / WPF / LINQ class and I now realize that LINQ to XML is perfect for this task.  For example, consider the simple example of a tool that can switch between designer view and xml view.   It can all be done in 10 simple steps:&lt;br /&gt;&lt;br /&gt;1) Create a couple of tab pages.  Put your designers on one and a richtext box on another.&lt;br /&gt;2) Use XElement.Load() to load the WiX document into an in memory object model.&lt;br /&gt;3) Use XElement.ToString() and pass it off to the RichTextBox.  &lt;br /&gt;4) Create an event handler and wire it up to the XElement changd event so that any time something changes in the object model you can refresh the XML view.&lt;br /&gt;5) Use LINQ to query the object model and feed the data into your UI components.&lt;br /&gt;6) Use your UI components to manipulate the objects using LINQ.&lt;br /&gt;7) Wire up the RichTextBox TextChanged event to refresh your UI if the XML changes.&lt;br /&gt;8) Use XElement.Save() to save your changes.&lt;br /&gt;9) Use visual studio integration to wire the tool up to Votive.  The concept is to not reinvent the wheel.  Just edit the WXS/WXI files out of process and let votive reload the documents after you save your changes.&lt;br /&gt;10) Profit! ( Sorry, Slashdot joke )&lt;br /&gt;&lt;br /&gt;Sure, there's a lot of work to do it all correctly but the basic pattern is actually quite simple.  So here's a couple screenshots of a (mostly working) program I was able to write in one day.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_28H3HFywulA/Sm0qBsCMbgI/AAAAAAAAANc/HNvP5Mj9S8E/s1600-h/desgin_view.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 253px;" src="http://2.bp.blogspot.com/_28H3HFywulA/Sm0qBsCMbgI/AAAAAAAAANc/HNvP5Mj9S8E/s400/desgin_view.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5362988939756727810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_28H3HFywulA/Sm0qEotB7FI/AAAAAAAAANk/3mNa5CXnSpo/s1600-h/xml_view.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 172px;" src="http://3.bp.blogspot.com/_28H3HFywulA/Sm0qEotB7FI/AAAAAAAAANk/3mNa5CXnSpo/s400/xml_view.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5362988990402260050" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-6805533008093972040?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/WaazXPsco_A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/6805533008093972040/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=6805533008093972040" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/6805533008093972040?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/6805533008093972040?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/WaazXPsco_A/maybe-i-should-roll-my-own-part-ii.html" title="Maybe I Should Roll My Own Part II" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_28H3HFywulA/Sm0qBsCMbgI/AAAAAAAAANc/HNvP5Mj9S8E/s72-c/desgin_view.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/07/maybe-i-should-roll-my-own-part-ii.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IHRnk_cCp7ImA9WxJUEko.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-3696013152252810775</id><published>2009-07-10T18:55:00.003-05:00</published><updated>2009-07-10T19:18:57.748-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-10T19:18:57.748-05:00</app:edited><title>Austin meets Heat</title><content type="html">&lt;a href="http://4.bp.blogspot.com/_28H3HFywulA/SlfaCYtl-hI/AAAAAAAAANU/bJPnI4IU3v0/s1600-h/Austin.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 117px;" src="http://4.bp.blogspot.com/_28H3HFywulA/SlfaCYtl-hI/AAAAAAAAANU/bJPnI4IU3v0/s400/Austin.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5356990016308771346" /&gt;&lt;/a&gt;&lt;br /&gt;Whew it's been hot in Texas lately.  AFAIK it's been 100f+ for the last several weeks with no end in sight.  Accordign to weather data, the max temp for last month was 106f with an average of 99f and a min of 90f.   This month we are tracking for 106f, 102f and 93f.    Whew.&lt;br /&gt;&lt;br /&gt;So what does this have to do with setup?  Well, I've been playing with WiX's Heat a lot lately.  I got tired of running heat from a command prompt and then repeating my same cleanup tasks over and over so I decided to automate it a little with a C# winforms application.  While I was at it, I added an interesting feature that I thought was a bit gimmicky at first until I started getting feedback on how cool it was.&lt;br /&gt;&lt;br /&gt;What did I add?  Simple: a FileSystemWatcher that monitors a directory for updates and then dynamically regenerates the wix document, cleans it up and then refreshes the display to show the new WiX code.  With multiple monitors you just stage the dirctory on one screen while watching the program write the code for you on the other screen.&lt;br /&gt;&lt;br /&gt;It's really a simple concept but everyone finds it quite informative. Once you have what you want you just cut and paste it into your Votive project.&lt;br /&gt;&lt;br /&gt;So I was going to call this new tool "Blow Torch" but when I asked a coworker who is also named Chris how he liked the name he just said that he'd call it Austin.&lt;br /&gt;&lt;br /&gt;Austin? Hmmm....  Sure, Why not?  I like the sound of it.&lt;br /&gt;&lt;br /&gt;So the hear finally destroyed our HVAC plant at work and everyone was sent home for the weekend early.  This gave me a few hours to work and now I have Austin built and packaged.   For now I'm just going to tease everyone with a screenshot but hopefully in a week or so I'll pass all of quality checks and release this tool for others to play with.   That process might go faster if people actually bug me for a copy. ( Hint Hint! )&lt;br /&gt;&lt;br /&gt;BTW, in case your wondering why the screenshot has a refresh button, I'm working on making it a feature to scan automatically or manually.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-3696013152252810775?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/LSoppA5bl50" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/3696013152252810775/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=3696013152252810775" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3696013152252810775?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/3696013152252810775?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/LSoppA5bl50/austin-meets-heat.html" title="Austin meets Heat" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_28H3HFywulA/SlfaCYtl-hI/AAAAAAAAANU/bJPnI4IU3v0/s72-c/Austin.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/07/austin-meets-heat.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08FRnw5eip7ImA9WxJVGE0.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-5952153036221200650</id><published>2009-07-04T14:41:00.004-05:00</published><updated>2009-07-05T08:50:17.222-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-05T08:50:17.222-05:00</app:edited><title>WiX 3.0 Ships</title><content type="html">Wix 3.0.5419 has been promoted to Production Stable quality on SourceForge.net and can be downloaded &lt;a href="http://sourceforge.net/projects/wix/files/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been fairly critical of WiX over the years but today marks a turning point in that believe. With the release of 3.0, many features are now in place that begin to make a really strong case for seriously considering the use of WiX over legacy tools. While WiX still lacks a 1st class bootstrapper/chainer and proper IDE GUI design tools that other tools have, I believe that the core foundation of WiX is much better positioned for the future. &lt;br /&gt;&lt;br /&gt;Hopefully we'll see WiX 3.5 ( featuring Burn )in 6-12 months to address these concerns. I also hope to see Votive explode into a fully featured visual studio add-in.  Finally, I expect a market of WiX based designer tools to appear.  Hopefully WiXAware 3.0 will be released ( and even more hopefully that it actually work! ) and I also anticipate InstallShield will eventually bring tools to market based on WiX.  IMO it is inevitable and the InstallShield brand as a packaging tool will not survive if they do not.&lt;br /&gt;&lt;br /&gt;So there it is: WiX 3.0 is shipped and I now see the road that I will travel towards over the coming months.  With dozens of installers composed from hundreds of merge modules and tens of thousands of files, it'll take us awhile to get there from sure.  But I am no convinced that the effort will be worthwhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-5952153036221200650?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/6Ca2X0jZDII" height="1" width="1"/&gt;</content><link rel="related" href="http://robmensching.com/blog/posts/2009/7/4/WiX-v3.0-released" title="WiX 3.0 Ships" /><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/5952153036221200650/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=5952153036221200650" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/5952153036221200650?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/5952153036221200650?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/6Ca2X0jZDII/wix-30-ships.html" title="WiX 3.0 Ships" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/07/wix-30-ships.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0INR3o8eip7ImA9WxJWGUk.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-7044849351018497430</id><published>2009-06-25T09:45:00.002-05:00</published><updated>2009-06-25T09:53:16.472-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T09:53:16.472-05:00</app:edited><title>Two Blog Articles on Windows 7 Compatibility Shims Every Install Developer Should Be Aware Of</title><content type="html">Both of these were referenced on Stefan's InstallSite blog but I thought I'd reference them too.  Both blog articles are on &lt;a href="http://blogs.msdn.com/cjacks/default.aspx"&gt;Chris Jackson's Semantic Consonance blog&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/cjacks/archive/2009/05/06/why-custom-actions-get-a-windows-vista-version-lie-on-windows-7.aspx"&gt;Why Custom Actions get a Windows Vista Version Lie on Windows 7&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/cjacks/archive/2009/06/18/pca-changes-for-windows-7-how-to-tell-us-you-are-not-an-installer-take-2-because-we-changed-the-rules-on-you.aspx"&gt;PCA Changes for Windows 7: How To Tell Us You are Not an Installer, Take 2 (because we changed the rules on you)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-7044849351018497430?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/coc94WB-bb0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/7044849351018497430/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=7044849351018497430" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7044849351018497430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7044849351018497430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/coc94WB-bb0/two-blog-articles-on-windows-7.html" title="Two Blog Articles on Windows 7 Compatibility Shims Every Install Developer Should Be Aware Of" /><author><name>Colby</name><uri>http://www.blogger.com/profile/08696301684260588101</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="09104302108733971174" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/06/two-blog-articles-on-windows-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMASXs9fyp7ImA9WxJWGEo.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-8729874996162293731</id><published>2009-06-24T15:07:00.002-05:00</published><updated>2009-06-24T15:14:08.567-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-24T15:14:08.567-05:00</app:edited><title>DRM Activation Question</title><content type="html">ShadowWolf recently commented:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;Activation ( and reactivation ) are pretty par for the course in the business tool world from what I've seen. I don't know that anyone really "likes" it, but it definitely serves a legitimate purpose.&lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This comment made me wonder, is this true? I work in an environment with airgaps around our network connections for security purposes and I can't think of a single tool that we use besides InstallShield that requires activation and/or reactivation.&lt;br /&gt;&lt;br /&gt;Sure, Windows does (once) but they also offer a volume license key that doesn't require activation. Microsoft Office works the same way. Visual Studio, TFS and so on. Even our IBM/Rational products don't give us this problem and trust me, those are some pretty darn expensive tools. The only product that we use that I can think of is Robohelp.&lt;br /&gt;&lt;br /&gt;So I'm curious, what are some of the products my readers use that require activation?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-8729874996162293731?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/Fk-d18jti1Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/8729874996162293731/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=8729874996162293731" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8729874996162293731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8729874996162293731?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/Fk-d18jti1Y/drm-activation-question.html" title="DRM Activation Question" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/06/drm-activation-question.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YNQHw6eyp7ImA9WxJWFEs.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-7995412096058399317</id><published>2009-06-18T22:56:00.002-05:00</published><updated>2009-06-19T21:33:11.213-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-19T21:33:11.213-05:00</app:edited><title>InstallShield 2010 vs WiX 3.0</title><content type="html">It's been no secret that I've favored InstallShield over WiX for many years.  I've used InstallShield products since 1997 and I've shipped hundreds of installers using this versatile tool.   InstallScript, XML Locator, Setup Prerequisites, Multiple Instance Support, COM Extraction, MySQL, Dialog/Control editors, Product/Release configurations and Component authoring wizards/views have made me a very productive and profitable person over the years.&lt;br /&gt;&lt;br /&gt;Unfortunatly, there are also things I dislike about InstallShield.  The DRM activation ( and now reactivation with IS2010 ) is horrible, difficulty in trying to get updates in an offline scenario (which we always are for security purposes), the random crashes, the horrible DTD/XML transformation, sequenced primary keys and of course, the removal of the stand alone build from Professional and totally useless collaboration tool combined with the really high price of the product.&lt;br /&gt;&lt;br /&gt;If I'm hurting anyones feelings, I'm sorry.  It's hard for me too since I've used this tool for so long and I do believe it's still a very good tool for many development shops.  Just not for mine.&lt;br /&gt;&lt;br /&gt;At my day job, I lead a team of 4 ( going on 6! ) setup developers.  We collectively maintain dozens of installs that generate and consume hundreds of merge modules from a software product line.  Our typical installer ships 10,000 - 15,000 files and includes countless databases, services, webservices and many chained packages of programs that we integrate with.   All of this occurs on many active branches.&lt;br /&gt;&lt;br /&gt;Unfortunatly InstallShield with it's DTD XML and incremented primary keys just doesn't work well in this environment.   Merging branches back together in clearcase is a nightmare since you always end up with unresolved conflicts.  Enter WiX.   The XSD XML is 95% smaller then DTD XML and is way more expressive.   Also thanks to deterministically unique primary keys and guids,  changes done on multiple branches can actually merge back together easily.&lt;br /&gt;&lt;br /&gt;The problem with WiX of course is the lack of gui designer abstractions and visualizations.  Fortunatly I finally have a solution for that.  I've recently had an internal tools developer assigned to me to come up with our own collaboration tools to sit on top of votive.   Once complete we are hoping to once again try decentralized setup development.   I'm not sure it'll work ( it didn't last time ) but we are going to give it a try again.    The reality is our environment is growing so fast that we need to retool and try new strategies to keep up.  Hiring more and more people just doesn't seem to work anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-7995412096058399317?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/kYBFqGC866s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/7995412096058399317/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=7995412096058399317" title="14 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7995412096058399317?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/7995412096058399317?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/kYBFqGC866s/installshield-2010-vs-wix-30.html" title="InstallShield 2010 vs WiX 3.0" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">14</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/06/installshield-2010-vs-wix-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UDQHc4fip7ImA9WxJQFUs.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-8486935352674431407</id><published>2009-05-28T21:39:00.003-05:00</published><updated>2009-05-28T21:47:51.936-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-28T21:47:51.936-05:00</app:edited><title>Now Hiring - Austin, TX</title><content type="html">I'm looking for an experienced InstallShield / MSI / WiX / BuildForge / TFS / C# software engineer to join my team in Southwest Austin, TX.   The engineer will be part of a Build and Install team that currently consists of 8 members with 3 more on the way to meet our ever growing needs.&lt;br /&gt;&lt;br /&gt;Please contact me at chrpai@deploymentengineering.com if you are interested.  &lt;br /&gt;&lt;br /&gt;Please note, due to customer requirements, all applicants must be a US citizen. Ability to obtain and maintain a US Security Clearance is required; an active clearance is highly desirable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-8486935352674431407?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/nG3gldFNzyo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/8486935352674431407/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=8486935352674431407" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8486935352674431407?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/8486935352674431407?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/nG3gldFNzyo/now-hiring-austin-tx.html" title="Now Hiring - Austin, TX" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/05/now-hiring-austin-tx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUNQ384cCp7ImA9WxJSEEs.&quot;"><id>tag:blogger.com,1999:blog-9537945.post-4431663172950411831</id><published>2009-04-27T22:23:00.005-05:00</published><updated>2009-04-29T21:58:12.138-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-29T21:58:12.138-05:00</app:edited><title>Trip Down Memory Lane</title><content type="html">&lt;a href="http://1.bp.blogspot.com/_28H3HFywulA/SfZ5HQefXaI/AAAAAAAAANM/PfAwSNBjtMQ/s1600-h/chrismarine.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 135px; height: 220px;" src="http://1.bp.blogspot.com/_28H3HFywulA/SfZ5HQefXaI/AAAAAAAAANM/PfAwSNBjtMQ/s400/chrismarine.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5329580374628457890" /&gt;&lt;/a&gt;&lt;br /&gt;I don't talk about this much these days, but before my career in computers I was once a musician. From 1993 to 1996, I was assigned for duty with "&lt;a href="http://drumcorps.mbw.usmc.mil/"&gt;The Commandant's Own&lt;/a&gt;" United States Marine Drum and Bugle Corps. It was quite an honor to have earned the privilege to tour with such an outstanding group. &lt;br /&gt;&lt;br /&gt;Those were some really great years of my life. Thanks to Facebook, I'm able to keep in touch with my &lt;a href="http://drumcorps.mbw.usmc.mil/former.htm"&gt;former fellow Marines&lt;/a&gt; and in June we'll be having a 75th anniversary reunion in Washington, DC.&lt;br /&gt;&lt;br /&gt;So turn up your speakers and press play for a trip down memory lane.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MuRm81XPig0&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MuRm81XPig0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9537945-4431663172950411831?l=blog.deploymentengineering.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DeploymentEngineering/~4/CXSk8AHI21Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.deploymentengineering.com/feeds/4431663172950411831/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9537945&amp;postID=4431663172950411831" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/4431663172950411831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9537945/posts/default/4431663172950411831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DeploymentEngineering/~3/CXSk8AHI21Y/trip-down-memory-lane.html" title="Trip Down Memory Lane" /><author><name>Christopher Painter</name><uri>http://www.blogger.com/profile/12167478740431444267</uri><email>chrpai@yahoo.com</email><gd:extendedProperty name="OpenSocialUserId" value="00703071804906658959" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_28H3HFywulA/SfZ5HQefXaI/AAAAAAAAANM/PfAwSNBjtMQ/s72-c/chrismarine.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.deploymentengineering.com/2009/04/trip-down-memory-lane.html</feedburner:origLink></entry></feed>
