tag:blogger.com,1999:blog-95379452024-03-07T07:53:10.131-06:00Deployment Engineering ArchiveHistorical archive 2003-2011Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.comBlogger351125tag:blogger.com,1999:blog-9537945.post-88228037555749347622011-09-20T19:46:00.003-05:002023-03-03T13:58:51.688-06:00Changing Domains
The Deployment Engineering blog has moved to http://blog.iswix.com. All 351 previous articles from 2003 - 2011 will remain at this URL to make sure the content can be linked to from all over the web.
Christopher Painter's email address is also changing to chrpai@iswix.com.
Sincerely,
Christopher Painter
ISWIX, LLC.
Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-55458744678348638112011-08-30T20:48:00.001-05:002011-08-30T20:58:33.045-05:00Tales of Setup DemocratizationAt my last job, the .NET developers and InstallShield developers embarked on a collaboration excercise that we called 'setup democratization'. We used a blend of InstallShield and Windows Installer XML. Most developers used Industrial Strength Windows Installer XML ( IsWiX ) to author their WiX code.
I've asked my former colleagues to post their observations.&Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com2tag:blogger.com,1999:blog-9537945.post-78941627332341052042011-08-10T21:52:00.000-05:002011-08-10T21:52:51.096-05:00Farewell Overwatch SystemsThe last three years have really flown by. Two really wonderful things happened: First, my wife has continued to be cancer free and second, I climbed the Mt Everest of installation complexity and won! None the less, it's time to move on.
I will miss all of my friends at Overwatch Systems. We really accomplished a lot together but alas it's time for new Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-60959688940079465742011-06-18T13:16:00.007-05:002011-08-05T17:11:20.639-05:00Farewell Jedi MattTwo and a half years ago I met an individual by the name of Matthew Tan who inspired me to post the article Come to the dark side. I had sensed that the force was strong in this one so I gave him as much advice and training as I could until a month later I left the company to accept the Install Lead position with a former employer.
Six months went by and we were swamped so we Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com2tag:blogger.com,1999:blog-9537945.post-87214524995331248162011-04-08T07:39:00.000-05:002011-04-08T07:39:28.887-05:00Lack of IIS Support in IS Automation InterfaceIn a previous blog entry I talked about how a couple of InstallScript UAC bugs went uncorrected for several years. "Anonymous" left a comment saying "it wasn't a big deal".
So today I'd like to leave a little bread crumb for something that IS a really BIG deal.
InstallShield markets itself as having an Automation Interface and not just a big fat IDE. That is correct and I make Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com5tag:blogger.com,1999:blog-9537945.post-51164498570097957722011-04-06T09:08:00.000-05:002011-04-06T09:08:39.204-05:00Interesting Thoughts for TodayI just came across two interesting blog posts today that I thought I would share. The first is from The Agile Warrior:
Wherever you are working, pretend you are going to be there for ever.
This is especially important if you are a contractor.
When you act like you are going to be somewhere forever (and that it’s YOU who is going to be maintaining this software) you behave differently.
Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com1tag:blogger.com,1999:blog-9537945.post-51040234573074547672011-04-04T13:05:00.001-05:002011-04-04T13:06:21.949-05:00InstallShield Bug BacklogI was reading through the InstallShield 2011 release notes from August 2010 when I noticed the following:
InstallScript Functions ServiceExistsService and ServiceGetServiceState No Longer Require Elevated Privileges
The InstallScript functions ServiceExistsService and ServiceGetServiceState no longer require elevated privileges. Therefore, installations can now call these functions when end Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com3tag:blogger.com,1999:blog-9537945.post-79010944677297447072011-03-14T21:47:00.002-05:002011-03-14T21:51:46.608-05:00Guess What Else InstallShield Can Do!Flexera's InstallTalk blog recently posted a blog articled titled `I Didn't Know InstallShield Could Do That?` I mainly reference the article not for the content but to use it as a hook for a more interesting albeit darker version:
InstallShield can be used a bootstrapper for a WiX MSI.
...evil laugh...
It's simple. InstallShield 2011 Premiere has some new features that allow you toChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com8tag:blogger.com,1999:blog-9537945.post-66821199024993245632011-03-12T10:13:00.001-06:002011-03-13T11:01:57.047-05:00Redemption of Visual Studio Deployment ProjectsFor years I've spoken of the horrors of Visual Studio Deployment Projects:
Every file and every registry key is always a key file of it's own component
ShortCuts are always advertised
Dependency Scanning is next to impossible to disable
Custom Action support is horrible ( deferred only )
No support for MSI concepts such as ServiceInstall encourages Custom Action anti-patterns
Many more ( Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com2tag:blogger.com,1999:blog-9537945.post-44089342338136117492011-03-10T20:25:00.002-06:002011-03-10T21:21:46.707-06:00Installation Collaboration Workflows using Free ToolsRecently I was asked to explain the workflow for Industrial Strenth Windows Installer XML (IsWiX). In a nutshell IsWiX is all about enabling collaboration by enlisting the help of various contributors in defining the contents of the installer. This is done through the use of Microsoft Merge Modules. We use MSM's rather then fragments and libraries because the intent is to Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-90328976668185811062011-03-06T19:37:00.000-06:002011-03-06T19:37:06.737-06:00.NET Reflector is PricelessRecently, thanks to the Big Swinging Developer, I was given a license of .NET Reflector.
I just wanted to say that Reflector really is priceless!
Just today I was working on a new install for a remote customer and wouldn't you know it, the application threw a null object reference exception when I tried to start it!
I didn't have any sources or symbols so I could have thrown in the Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-91554895365368176282011-03-04T21:49:00.000-06:002011-03-04T21:49:48.865-06:00InstallShield Setup Prereq for Microsoft SQL CE 3.5 SP2 Bug AlertI was recently working on an InstallShield 2011 ( Hotfix A ) Basic MSI project and I needed to add the Microsoft SQL CE 3.5 SP2 prereqs to my project. In doing so I've noticed a big problem:
1) InstallShield only provides a PRQ for the x86 redist not the x64 redist.
2) The PRQ provided for the x86 redist incorrectly filters out 64bit Windows Server 2003, Windows Vista and Server 2008 whileChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-19415360308620503342011-02-17T23:35:00.001-06:002011-02-17T23:42:52.118-06:00InstallAware BlogSinan at InstallAware has just posted an interesting read:
Viresh: Did He Make or Break InstallAware?
While some of it is questionable, if you have an interest in the behind the scenes opinions of this industry it's really worth reading the entire article. He goes into such topics as the war between Rob and InstallAware, the copying of the ZeroG website (along with Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com4tag:blogger.com,1999:blog-9537945.post-47800341086159526552011-02-17T22:40:00.000-06:002011-02-17T22:40:20.310-06:00Austin NetworkingSometimes I think it would be nice to have some sort of get together in the Austin area. I'm not sure what that would look like so I'm open to suggestions. I don't have corporate sponsors so there wouldn't be super cool swag although a few pizzas and/or Rudy's BBQ could probably happen.
So leave a comment or send me an email if you are interested. I'd be up for everythingChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-37488125739798640482011-02-14T08:17:00.000-06:002011-02-14T08:17:45.292-06:00Software EntropyRecently, someone suggested to me ( putting it mildly ) that our build automation should ignore failed unit tests in order to get further down the process. I instinctively bristled at this notion. Later I decided to google the subject to see if anyone else in the world was actually entertaining such non-sense. There was an answer on StackOverflow that referenced Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com8tag:blogger.com,1999:blog-9537945.post-24000420446715768562011-02-12T10:40:00.000-06:002011-02-12T10:40:43.605-06:00the Build MaestroIn my last blog post I encouraged Nick Skitch to start blogging and today I noticed he now has the blog:
the Build Maestro
I'm not sure if my public dare worked or not ( it could be pure coincidence ) but let's welcome Nick none the less. Also, I've put him on my Daily Rounds.
Speaking of my "Daily Rounds", they are just that. There is absolutely nothing political orChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-37464926349311103852011-02-11T06:18:00.002-06:002011-02-12T21:58:57.522-06:00Motivational FeedbackRecently I've received some comments and emails ( reposted with permission ) from readers that I wanted to share.
The first comment is from Jerra who I first met on InstallShield Community. He had started a thread trying to come up with, well - interesting, ways via custom actions to get InstallShield 2010 LE to create services. This thread was actually in the inspiration for theChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com2tag:blogger.com,1999:blog-9537945.post-10450092639718828292011-02-10T21:21:00.002-06:002011-02-10T22:12:57.444-06:00Opinion: InstallShield and Agile??I few months back InstallShield posted the following:
Collaborate during installation development – Installation development today is becoming more of a team sport where all developers can participate. There isn’t as much of a need for specialist in Agile development. You may have people that are more experienced in certain areas than others, of course, but in Agile everybody rolls up their Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-39535493091694577322011-02-10T13:20:00.001-06:002011-02-10T13:47:53.582-06:00Dealing with Slow Starting Windows ServicesEvery once in a while a question pops up about Windows Installer trying to start a service and if fails but that if the user starts it manually it works. The solution usually turns out to be related to solving some race condition either in terms of dependency or timing. I won't attempt to enumerate all of these today but I did want to draw attention to something I recently Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com8tag:blogger.com,1999:blog-9537945.post-75919803211054076922011-01-31T21:26:00.007-06:002011-02-01T07:07:20.664-06:00Comments on Setting INSTALLDIR During an InstallBlair Symes recently posted "Building 32-Bit and 64-Bit Installations from the Same InstallShield Project" on the Flexera's InstallTalk blog. In it he describes how to build two MSI's targetting opposite platform bitness using one InstallShield project. His example leverages a Type 51 custom action to assign INSTALLDIR at runtime based on the value of the ISReleaseFlags set during theChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com1tag:blogger.com,1999:blog-9537945.post-17439107881144978192011-01-31T09:14:00.000-06:002011-01-31T09:14:11.699-06:00WiX v3.5 ReleasedRob has announced the release of Windows Installer XML 3.5. I'd like to congratulate the WiX team for their achievement.
As I previously noted, I probably won't be able to explore this release at my day job due to our immutable requirement to support multiple versions of tools. I've raised this issues many times over the past couple of years and it looks like RobChristopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-65568536390780112072011-01-22T10:07:00.000-06:002011-01-22T10:07:11.915-06:00Upgrade vs No Upgrade and Windows Installer XMLA lot is side in the MSI SDK about servicing strategies. Much of it is confusing and has to do with the intricate details of Major vs Minor vs Small Upgrades and Upgrades shipped as MSI's or as Patches. The UpgradeCode property itself is defined as a "GUID representing a related set of products".
If you do this all correctly you get a nice user experience. For Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com1tag:blogger.com,1999:blog-9537945.post-18959519683805599492011-01-19T20:21:00.001-06:002011-01-19T20:22:15.910-06:00Augmenting InstallShield using Windows Installer XML - Windows ServicesIn my last blog I explained how you could use a WiX module to extend InstallShield to accomplish installing certificates. I also mentioned that you could use WiX to inject Windows Services into InstallShield 2010 Limited Edition even though the tool wasn't designed to support this.
Below is an example of what said WiX source code would look like. I post this not as some Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com15tag:blogger.com,1999:blog-9537945.post-64546839716282854132011-01-19T09:28:00.002-06:002011-01-19T09:43:04.572-06:00Augmenting InstallShield using Windows Installer XML - CertificatesI've blogged in the past how I like to blend WiX with InstallShield and today I'd like to post another example of the usefulness of these two tools together.
Recently I was creating an installer that need to install a trusted root certificate. I looked at InstallShield 2010 and the only certificate support I could find was for creating IIS websites and assigning server certificates. Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com0tag:blogger.com,1999:blog-9537945.post-58808398558360870972011-01-11T00:37:00.000-06:002011-01-11T00:37:55.490-06:00DC Universe Online Uninstaller IssuesI was searching twitter for InstallShield when a couple of links led me to this great thread:
DC Universe Online Uninstaller Issues ( Google Cache of Sony Online Entertainment )
It seems customer service was announcing some bugs in their uninstall. Now I'm not sure what will actually happen if the user clicks "Yes" but I do know I don't ever, ever want to see this dialog in my Christopher Painterhttp://www.blogger.com/profile/12167478740431444267noreply@blogger.com1