Question : MSI Compatibility Issue on Windows Server 2008

Hello,

My old MSI setup files fail on Windows 2008 with IIS7.

My applications are Visual Studio 2008 Web Apps C# projects, there is an msi setup project attached to it. The application itself originally targeted IIS6 and it doesn't seem to work on IIS7 anymore.

I am trying to make my application setup files compatible with Windows Server 2008 but they all fail immediately with this message:  "Installation Incomplete - The installer was interrupted before could be installed. You need to restart the installer to try again"

I have looked closely at the MSI log file. And I find these lines:
Action 11:43:06: WEBCA_SetTARGETSITE.
Action start 11:43:06: WEBCA_SetTARGETSITE.
MSI (c) (44:A8) [11:43:06:129]: Note: 1: 2235 2:  3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'WEBCA_SetTARGETSITE'
MSI (c) (44:A8) [11:43:06:129]: Creating MSIHANDLE (13) of type 790542 for thread 2984
MSI (c) (44:14) [11:43:06:129]: Invoking remote custom action. DLL: C:\Users\ADMINI~1\AppData\Local\Temp\MSIB925.tmp, Entrypoint: SetTARGETSITE
MSI (c) (44!58) [11:43:06:145]: Creating MSIHANDLE (14) of type 790531 for thread 2904
INFO   : [11/21/2009 11:43:06:145] [SetTARGETSITE                           ]: Custom Action is starting...
INFO   : [11/21/2009 11:43:06:145] [SetTARGETSITE                           ]: CoInitializeEx - COM initialization Apartment Threaded...
ERROR  : [11/21/2009 11:43:06:145] [SetTARGETSITE                           ]: FAILED:      -2147221164
ERROR  : [11/21/2009 11:43:06:145] [SetTARGETSITE                           ]: Custom Action failed with code: '340'
INFO   : [11/21/2009 11:43:06:145] [SetTARGETSITE                           ]: Custom Action completed with return code: '340'
MSI (c) (44!58) [11:43:06:145]: Closing MSIHANDLE (14) of type 790531 for thread 2904
CustomAction WEBCA_SetTARGETSITE returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (c) (44:14) [11:43:06:145]: Closing MSIHANDLE (13) of type 790542 for thread 2984
Action ended 11:43:06: WEBCA_SetTARGETSITE. Return value 3.
MSI (c) (44:A8) [11:43:06:145]: Doing action: FatalErrorForm
Action 11:43:06: FatalErrorForm.

After reading several posts among which:
http://stackoverflow.com/questions/1338663/web-setup-msi-fails-on-windows-server-2008
and
http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/6940016e-0a08-4368-8231-689e475f2d59
It seems to be an IIS compatibility issue. Now I don't want to enable the IIS6 compatibility feature on the server, I want to make my applications fully IIS7 compatible.

I have tried to install .NET framework 3.5, it doesnt solve the problem.

Would you know why the Setup itself stops so soon? it shouldn't be bothered by the IIS version installed already?

Is there any parameter I can add or remove in the setup project that prevents the MSI to install correctly?

Many thanks.

Answer : MSI Compatibility Issue on Windows Server 2008

I would look at a couple of things:

I don't know if this will work in VS2005 - I am using VS2008 and it solved my problem.  If you are using VS2005, give it a try - can't hurt :)

1. In VisualStudio select your Setup application and look at the "Target Platform" setting under the Project Properties.  Make sure it is set to x32 if it is to be installed in a 32-bit environment or make sure it's set to x64 if it is to be installed in a 64-bit environment.

2. Right-click the Setup project and go to "View | Launch Conditions".
3. Under the "Launch Conditions" folder select "IIS Condition".
4. Look in the Properties for the "Condition" value
5. If it is set to "IISVERSION >= "#6" then you are saying that this application can be installed for either IIS6 or above.
6. If you want to keep it only installable on IIS7 or above, you should set it to "IISVERSION >= "#7"

Note that Windows Server 2008 R2 has an IIS Version of 7.5

HTH
Random Solutions  
 
programming4us programming4us