May 2007 - Posts

Think ahead when creating operating system conditions

There's a pitfall that I see people falling into from time to time: operating system conditions. Such conditions can be useful as launch conditions to enforce system requirements or used with features, components or custom actions to install different versions of files or run actions depending on the Windows version.

If the developer tells you that the application will run on Windows XP SP2, Windows Server 2003 and Windows Vista, you could create a launch condition like this:

(VersionNT=501 And ServicePackLevel=2) Or (VersionNT=502) Or (VersionNT=600)

But that’s probably not what you really want, because your setup would be blocked on XP SP3 (which is expected to be released later this year), on Windows Server 2008, and in general on any future version of Windows. In my opinion you should only block if you are sure that your application will not work on these Windows versions (unless of course you have a business model of charging your customs again for the same piece of software with the condition removed <wink>).

In general I guess your system requirements actually are: Runs on Windows XP but requires at least SP2; runs on Windows Server 2003 or Vista or any future version of Windows. That results in the following condition:

(VersionNT=501 And ServicePackLevel>=2) Or (VersionNT>=502)

Note that VersionNT is 501 for XP, 502 for Server 2003, and 600 for Vista. On Windows Server 2008 it might also be 600 but I wouldn’t count on that. If necessary you can differentiate client and server versions using the MsiNTProductType property.

The Windows SDK lists all the predefined operating system properties and also has a reference table of OS versions and property values.

Here’s a trick if your conditions tend to become complex, unreadable and hard to manage, for instance if they additionally involve the operating system language. Use custom actions of type 51 (“set a property”) to set properties with intermediate results and use those to build your final condition.

A reminder in case you’re using operating system conditions on components: make sure to set the msidbComponentAttributesTransitive flag in the Component table, in case users update their operating system; in InstallShield this means switching the Reevaluate Condition setting of the component to yes.

I’ll close with a general recommendation for launch conditions (not for component conditions!): Either condition the LaunchConditions action with “Not Installed” in all sequences (InstallShield does this for you by default), or append “Or Installed” to your conditional expression. This ensures that your setup can be uninstalled even if the machine no longer meets the system requirements, maybe because a prerequisite software has been removed.

Posted by stefan | 1 comment(s)
Filed under: ,

Macrovision released InstallShield 2008

Macrovision released a new major version of their setup authoring tool: InstallShield 2008

New in this version:

  • New dialog designs for Basic MSI give you fresh choices for the look-and-feel of your installation’s user interface—improving the end-user experience.
  • SaaS Support (IIS 7 and SSL technologies) makes it easy for you to deploy Windows®-based Web applications.
  • With latest Windows Mobile platform support, including Windows Embedded CE 6.x, you can easily create installations for mobile devices and expand your deployment to all Window CE platforms, Pocket PC and Smartphone devices
  • Enhanced support for digital signing—save time by digitally signing all your files at build time
  • New InstallShield Best Practices Validation Suite is an additional tool to help you avoid common installation issues
  • Enhanced view structure that consolidates and organizes all release-related settings within one view
  • Automation interface improvements give you more flexibility in automation— minimizing manual intervention through the IDE
  • Improved XML support, including XML unit testing—save time when you test XML configuration changes in installation projects
  • Windows Vista support enhancements—new and improved support for Windows Vista in InstallScript and One-Click Install installations
  • Required EULA reading—"force" end users to read the EULA by requiring that they scroll to the end of the EULA for the installation to proceed

InstallShield 2008 – internally version 14.0 – is available as Premier and Professional editions; the Express edition is still at version 12. InstallShield 2008 is released simultaneously in English, German and Japanese.

Tip - if you plan to upgrade: With Windows Server 2008 in sight and Microsoft’s plan for the next version of Windows Installer, it’s likely that you will also want to get InstallShield 2009 next year. In this case you can save money if you buy version 2008 with a maintenance plan, because the extra charge for maintenance is less than the price for a single upgrade. Note that you must buy the maintenance plan bundled with InstallShield 2008; it’s not possible to buy maintenance separately.

InstallSite Shop

Tarma resumes development for ExpertInstall and QuickInstall

Tarma Software Research are the makers of the Windows Installer authoring tool ExpertInstall and also the non-MSI tool QuickInstall. In December 2006 they told me that development on the Tarma Installer products was stopped. This was also announced on their web site and on InstallSite. But customer feedback encouraged them to change this decision, so Tarma has resumed development and has released Windows Vista compatible versions of ExpertInstall and QuickInstall.

As a special benefit for users of the InstallSite web site Tarma Software Research offers a 20% discount on the original price of ExpertInstall and QuickInstall. Just enter the special coupon code [TIN3-installsite] when you order.

Tarma web site

Posted by stefan | with no comments

Another new MSI authoring tool based on WiX

"War Setup" is a new Windows Installer authoring tool which uses the Windows Installer XML (WiX) toolkit as compiler to generate .msi files. War Setup supports WiX fragmants and is licensed under the Common Public License 1.0, so it's free and the source code is included.

Like I mentioned yesterday in my blog post about Indigo Rose's "Setup Factory for Windows Installer" it seems like WiX is becoming a popular foundation for MSI authoring tools.

It's also interesting that more companies and products are again entering the Windows Installer market. During the past years there was a consolidation trend with company acquisitions (Macrovision bought InstallShield and ZeroG, Altiris bought Wise and got bought by Symantec, ScriptLogic bought MaSaI Solutions) and product lines being merged or discontinued (both InstallShield and Wise combined their classic scripting products with their MSI authoring tools, ActiveInstall/InstallAnywhere.NET and a few others disappeared).

War Setup web site

Indigo Rose creates MSI Authoring Tool based on WiX

Indigo Rose Corp. is the maker of various setup, update and autorun tools. Like all of the setup tools from the pre-MSI era their Setup Factory product is using a proprietary technology.

But now Indigo Rose is working on a new product called "Setup Factory for Windows Installer" to author MSI packages (beta registration just started).

Setup Factory for Windows Installer doesn’t create .msi files directly. Instead it generates .wxs files which then are compiled into an .msi file using the open source Windows Installer XML toolset (WiX). It looks like this might become common practice. While there have been several open source projects to create graphical IDEs for WiX, a few months ago WiXAware from InstallAware Software Corp. was the first commercial tool that used this approach. Now Indigo Rose goes the same route.

There is very little public information about Setup Factory for Windows Installer so it’s unknown how much of the WiX functionality they will support, like Fragments (which Rob Mensching found lacking in WiXAware).

Setup Factory for Windows Installer Beta announcement

Bugfix update for MSI 3.1

Microsoft released updated versions of Windows Installer 3.1 to fix a problem that could cause Windows Update to hang or crash. The update only applies to Windows XP SP2 and Windows Server 2003. It's not quite clear to me whether this version of the MSI runtime is redistributable or has to be downloaded by each end user individually. I suspect the latter as it requires "Genuine Advantage" validation of your Windows copy on XP. The update is expected to be distributed via Windows Update in late May or early June.

For more information see:

Microsoft Knowledge Base

WSUS Product Team Blog

 

Microsoft Prepares for the Next Version of Windows Installer

The Windows Installer team at Microsoft has posted a public invitation for MSI tools vendors to discuss the next version of Windows Installer. There is no public information about the planned features, supported platforms or the release date. Their stated goal in informing the tools vendors first is to "coordinate how ISVs and IT admins can realize benefits through their vendors".

Posted by stefan | with no comments

Creating an Offline Copy of the Windows Installer SDK Documentation

The Windows Installer documentation is part of Microsoft's Platform SDK, which is available for download and for online reading. However the SDK is a quite big download and install so it might be desirable to have a offline copy of only the Windows Installer pert of the SDK. (Note that the full SDK download also includes tools like Orca which are not available separately). If the MSI authoring tool of your choice doesn't include a copy of the Windows Installer documentation, or this copy is not up to date, you can create one yourself:

Package This is a free (licensed under the Microsoft Permissive License) GUI tool for creating help files (.chm and .hxs) from the content obtained from the MSDN Library via the MSDN Content Service. You select the content you want from the table of contents, build a help file, and use the content offline. You are making personalized ebooks of MSDN content. Both help file formats also give full text search and keyword search.

The Microsoft Terms of Use don't allow the redistribution of content obtained via the MSDN Content Service so you can't post the offline documentation you created on the web. Instead everyone needs to create their own copy.

Package This on CodePlex

Posted by stefan | with no comments

Security Update for VMware Workstation 5.5

A security vulnerability has been identified in VMware Workstation version 5.5: A program which is running in the virtual guest operating system could read and write arbitrary files on the physical host computer. The vulnerability has been fixed in VMware Workstation 5.5.4, Build 44386. If you are using VMware Workstation to test potentially malicous programs, like suspicious e-mail attachements or software you downloaded from untrusted websites, you should immediately install the update.

The vulnerability is in the "Shared Folders" feature of VMware Workstation which allows folders on the physical "host" system to be shared with virtual "guest" systems. Due to a flaw in the code which validates that the filename is safe, an attacker or malicious code within the guest system can read or write files on the host system in the context of the user running Workstation. In order to exploit this vulnerability, the VMware system must have at least one folder shared. Although the "Shared Folders" feature is enabled by default, no folders are shared by default. If the 'Read Only' option for a shared folder is set, the attacker will only be able to read files from the host.

According to the vulnerability report, VMware Tools is not required to exploit this vulnerability, so you are vulnerable even if you did not install the tools in the guest system.

VMware Workstation version 5.5.4 fixes a number of additional denial-of-service vulnerabilities.

Vulnerability Report

VMware Workstation 5.5.4 Release Notes

Posted by stefan | with no comments
Filed under: ,