March 29, 2007

Silently Installing .NET Framework: Legal???

Recently several people have asked or discussed with me the legality of bootstrapping the .NET framework as a setup prerequisite and it's applicability to a silent installation story. In fact Aaron Stebner recently blogged on HOW to perform a silent installation of Visual Studio sp's and during he mentions installation of the Framework silently.

But here is the rub.....

Are we actually allowed to do silent installs as an ISV that bootstraps the framework with our applications?

The official answer from Microsoft seems to be a very clear NO. For example the following URL states:

http://msdn2.microsoft.com/en-us/library/aa480235.aspx

If you are only referring your customers to get the runtime components from Microsoft, and provided that you do not modify the runtime packages and their installation experience (for instance, you can not use silent install), you do not need any specific redistribution license. Your customers will run the component installer and will accept the respective EULA terms before the components are installed.
If, however, you want to either host the components on your site or deliver them on magnetic or optical media (for customers who cannot get them otherwise), you will have to obtain a redistribution license as specified in tables 1, 2, and 3 below. In most cases, this license is part of the development tool license (either Visual Studio or the .NET Framework SDK). The redistribution license does not grant the distributor the right to modify the installation process and suppress the EULA (enable silent install).

Microsoft is once again being the big, unfocused corporation. One division is telling customers HOW to distribute the framework silently ( a logical requirement ) and yet another division is saying that you are not allowed. I was recently in Schaumburg, IL meeting with the makers of Industrial Strength Household Name MSI Editing Tool ( ISHNMET ) and the topic came up. The only answer they could give was: Talk to your lawyer.

Considering everything is clear as Mud from Redmond and IAMNAL, I'd say talk to your legal department also.

March 27, 2007

Chicago - It's Not Cold!!!!

I arrived into Chicago yesterday afternoon and made my way over to Schaumburg. Yesterday's high was 79° F. That's actually warmer then Austin somehow which was quite rainy. I'm having quite a good time meeting the dev team and fellow InstallShield developers at the customer lab. Unfortunately I won't be able to share any of the meat of the presentations until IS2008 officially releases. Fair enough...

On a side note it seems that I still can't be taken anywhere. We were on the way to get some tasty deep dish pizza while I was engaged in deep thought talking about an installer project when a street sign decided to jump up in front of me and take me out. First it was breaking my nose skiing and now I have a huge shiner on my forehead. Oh well... I just hope that no one will follow through with their promises of posting pictures!

March 13, 2007

InstallShield 2008 Beta

Macrovision started the InstallShield 2008 beta program yesterday. I've been so swamped with getting ready to close on my new house that I've barely been able to play with it. Fortunatly my current employer has approved me to travel up to Schaumburg, IL March 26-28 to attend the InstallShield 2008 Customer Preview Lab. I look forward to meeting you if you will be in attendance.

March 07, 2007

Name Change to DeploymentEngineering.com

I've been contemplating where I wanted to go with this blog for awhile now. At the same time my career has been taking me slightly away from setup authoring and back into the world of build automation. I always liked the name Hard Core Setup Engineering but I've been a little disturbed by the number of hits I get for people searching ( typically using Windows Live Search ) for the term `Hard Core`. I assure you that was not the meaning! My use of the term `Hard Core` was meant as homage to my Marine Corps day. Stefan Krueger once translated one of my articles to German and I really liked his use of the word `Uber`. Of course it seems everything he translates into German just sounds better in German!

Anyways, I've recently registered the domain DeploymentEngineering.com and I've renamed my blog to to the same. After DNS settles down I'll finish my changes. Meanwhile, not a lot will change in the near future. I will be adding additional labels and start covering a broader range of topics including TFS, TeamBuild and MSBuild and how they relate to setup authoring. Eventually I suspect that this blog will become a small part of a larger portal. However, this will depend on how much time I can devote.

March 04, 2007

No pre-JIT For You

Aaron Stebner of Microsoft recently posted an article expounding on the virtues of Wix in regards to pre-JITing .NET assemblies at install time:
Prior to these WiX custom actions, it was relatively difficult and error prone to add NGEN to an MSI-based setup, but it is simple and straightforward now. I wanted to demonstrate just how easy it is to use the WiX NGEN custom actions to encourage setup developers to use WiX and the NGEN custom actions for managed assemblies.

In InstallShield, you simply select the component that has the assembly and change the ".NET Precompile Assembly" to Yes. I hardly see how it was difficult prior to WiX.

But the real question in my mind is why does WiX and InstallShield have to each roll their own Custom Action pattern to do something as common as pre-JITing assemblies?

The .NET framework has been around a VERY long time and I'm surprised to see that Windows Installer STILL does not have built-in standard action patterns for supporting this installation story. A common installation story that involves `relatively difficult and error prone` steps is the very problem that MSI is supposed to be solving.

For the record, Aaron pointed out this very shortcoming back in 2004 here. Microsoft has inexcusably dropped the ball, but now they get praise because WiX is here to save the day.

I'm sorry, but I call foul on this one.