straightwaytech
03-16-2008, 03:29 AM
Hello again,
I have a question and a potential bug I spotted within SetupBuilder in the area of redistrubtable components and pre-requisites.
Firstly, I am wondering if it possible for the SQL Server Express Edition prerequisite check to install a new instance of SQL Server Express if the instance does not exist? The reason I ask this is that I have found that if a instance of SQL Server is already installed on the client computer, my installation will not install a new instance for my application. I need to have the setup I create with SetupBuilder to see if an instance name of SQL Server Express exists and if it doesn't proceed with an install of the instance by that name.
Secondly, I noticed recently that an installation on Windows XP Service Pack 2 without any updates in a virtual machine environment will fail to install the SQL Server Express instance and hence part of the installation will fail. After a couple of hours of tracing the root of the problem down, I have discovered what is causing the problem (bug if you will) and would like to describe it in further detail. Essentially, as you probably already know SQL Server Express requires several pre-requisites before it can be installed including .NET Framework 2.0 and Windows Installer 3.1. Those components I have included in the installer for pre-requisites so in theory all of those components will get installed before the SQL Server Express installation fires up. However, the Windows Installer 3.1 installer fails to install on my base Windows XP with Service Pack 2 machine, which then prevents SQL Server Express from being installed. The problem stems from the version checking that Setupbuilder does when determining whether or not to install Windows Installer 3.1 ; Take a look at this piece of the ScriptLogic code for the Windows Installer 3.1 :
If %MSIVERSION% Version Less Than "3.0" Then
As you can see there is a flaw in this code because if Windows Installer 3.0 is installed, then it won't be upgraded to Windows Installer 3.1, however since SQL Server Express requires at least Windows Installer 3.1, we have a bit of a contradicition that prevents SQL Server Express from being installed on a Windows XP SP2 base system. To correct this problem, please change the above line to :
If %MSIVERSION% Version Less Than "3.1" Then
That way we ensure that the version number is less than 3.1 NOT 3.0.
Anyway, if you could get back to me on the question I posted and the status of the fix to the Windows Installer pre-requisite issue, it would be greatly appreciated.
Regards,
James Simpson
Straightway Technologies Inc.
I have a question and a potential bug I spotted within SetupBuilder in the area of redistrubtable components and pre-requisites.
Firstly, I am wondering if it possible for the SQL Server Express Edition prerequisite check to install a new instance of SQL Server Express if the instance does not exist? The reason I ask this is that I have found that if a instance of SQL Server is already installed on the client computer, my installation will not install a new instance for my application. I need to have the setup I create with SetupBuilder to see if an instance name of SQL Server Express exists and if it doesn't proceed with an install of the instance by that name.
Secondly, I noticed recently that an installation on Windows XP Service Pack 2 without any updates in a virtual machine environment will fail to install the SQL Server Express instance and hence part of the installation will fail. After a couple of hours of tracing the root of the problem down, I have discovered what is causing the problem (bug if you will) and would like to describe it in further detail. Essentially, as you probably already know SQL Server Express requires several pre-requisites before it can be installed including .NET Framework 2.0 and Windows Installer 3.1. Those components I have included in the installer for pre-requisites so in theory all of those components will get installed before the SQL Server Express installation fires up. However, the Windows Installer 3.1 installer fails to install on my base Windows XP with Service Pack 2 machine, which then prevents SQL Server Express from being installed. The problem stems from the version checking that Setupbuilder does when determining whether or not to install Windows Installer 3.1 ; Take a look at this piece of the ScriptLogic code for the Windows Installer 3.1 :
If %MSIVERSION% Version Less Than "3.0" Then
As you can see there is a flaw in this code because if Windows Installer 3.0 is installed, then it won't be upgraded to Windows Installer 3.1, however since SQL Server Express requires at least Windows Installer 3.1, we have a bit of a contradicition that prevents SQL Server Express from being installed on a Windows XP SP2 base system. To correct this problem, please change the above line to :
If %MSIVERSION% Version Less Than "3.1" Then
That way we ensure that the version number is less than 3.1 NOT 3.0.
Anyway, if you could get back to me on the question I posted and the status of the fix to the Windows Installer pre-requisite issue, it would be greatly appreciated.
Regards,
James Simpson
Straightway Technologies Inc.