I had interesting experience today. I tried to create a web setup project for one of my recent projects. As you know it is pretty straightforward: From Visual Studio 2008 File –> Add –> New Project –> Select Setup wizard.
and just add output from existing project.
Then press Ctrl+Shift+B (Build ) and you’re ready… But not in Windows Server 2008. When I decided to test this newly made installation package I hit the ground with single dialog showing this message:
"The installer was interrupted before ApplicationName could be installed. You need to restart the installer to try again.
Click "Close" to exit."
Being experienced installer package developer I knew what I had to do: run the installer with verbose logging.
by executing this line:
1: msiexec /i Installer.msi /lv detail.log
And I had nice 57 KB file to read in wonderful notepad. And the problem action quickly appeared:
1: Action start 16:22:53: WEBCA_SetTARGETSITE.
2: MSI (c) (B4:4C) [16:22:53:082]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'WEBCA_SetTARGETSITE'
3: MSI (c) (B4:48) [16:22:53:082]: Invoking remote custom action. DLL: C:\Users\ADMINI~1\AppData\Local\Temp\MSIFB61.tmp, Entrypoint: SetTARGETSITE
4: INFO : [11/11/2008 16:22:53:097] [SetTARGETSITE ]: Custom Action is starting...
5: INFO : [11/11/2008 16:22:53:097] [SetTARGETSITE ]: CoInitializeEx - COM initialization Apartment Threaded...
6: ERROR : [11/11/2008 16:22:53:097] [SetTARGETSITE ]: FAILED: -2147221164
7: ERROR : [11/11/2008 16:22:53:097] [SetTARGETSITE ]: Custom Action failed with code: '340'
8: INFO : [11/11/2008 16:22:53:097] [SetTARGETSITE ]: Custom Action completed with return code: '340'
9: Action ended 16:22:53: WEBCA_SetTARGETSITE. Return value 3.
10: MSI (c) (B4:4C) [16:22:53:097]: Doing action: FatalErrorForm
11: Action start 16:22:53: FatalErrorForm.
Seeing WEBCA_SetTARGETSITE means that the installer was trying to set the destination. Having a web setup this means IIS was asked for “Default Web Site” and this call must be the one that fails. But why!? I have Web Server Role installed on the machine:
I and remembered from my MS DevDays 2008 IIS talk – you still can use old (pre v7) IIS management tools with IIS7 as long as you have “IIS 6 Metabase Compatibility” role service installed.
I installed this role and … Voila!!! it works!!!