I recently read several blog articles and newsgroup postings of interest when put together.
The first was from Aaron Stebner ( MSFT ) talking about YEt Another Hack ( sarcasm `YEAH` /sarcasm ) describing how to do some crazy postbuild step to get a VDPROJ installer to do something as simple as set the In-Script Execution Context for a custom action. I’m sorry, but I’ve been down this road before. In no time at all you will have dozens of these build automation hacks just to get a tool set to do something that it specifically wasn’t designed to do despite that it’s painfully obvious that it should.
Then I read this posting from Phil Wilson…
The design of installer class methods does not pass the MSI handle through to managed code, mainly because the design (as a deferred custom action all) means that there’s not actually much you can do with it.
Based on this and what little support for custom action attributes VDPROJ exposes, it seems pretty obvious what Microsoft ( Visual Studio Team ) wanted to design Visual Studio to support.
Finally I read a story over on SlashDot entitled Microsoft vs TestDriven.NET. It seems that the author ( Jamie Cansdale ) of TestDriven.NET royally offended Microsoft by coming up with extending Visual Studio Express editions with Unit Test Add-In’s. A response from the VSE team can be read here.
So setting the threshold level to 5 on SlashDot ( as I always do ) I discovered this gem:
It seems that Microsoft is claiming a EULA violation on the basis:
…you may use the software only as expressly permitted in this agreement. In doing so you must comply with any technical limitations in the software that only allow you to use it in certain ways… You may not work around technical limitations in the software.
So I ask you, if VDPROJ specifically didn’t provide for immediate context CA’s, ServiceControl/ServiceInstall support and a host of other things, and assuming that Microsoft’s bizarre EULA is enforceable, isn’t writing articles that encourage developers to work around these ( obvious ) limitations simply an invitation to disregard their own EULA?
Just like teaching developers how to modify .NET Framework Redistributables to run silently even when their own EULA says that you may not.
BTW, did I mention that Microsoft yanked the MVP status of Jamie? Also of interest is that Jamie wrote the Installer for TestDriven.NET using all Microsoft tools including WiX.
Times like this makes me really happy that I don’t owe anything to Microsoft… I prefer to have an unbiased outside opinion without worrying about things like will I get shunned from some conference, lose MVP status or worse, lose my lively hood.
Days like this, I miss my Amiga.