yes, throw that away, and start again from scratch.. It seems what you're
trying to do is to create a bootsrapper inside a msi. Use a real
bootstrapper instead to take care of installing multiple msi:s
On 4/25/07, Nathan Lane <[EMAIL PROTECTED]> wrote:
So here's what I have, and my installer errors out when I try to run it,
saying that something was wrong with the script.
WXS File:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns=' http://schemas.microsoft.com/wix/2003/01/wi'>
<Product Name=".com Applications"
Id="53164a64-f286-11db-8314-0800200c9a66" Language="1031" Codepage="1252"
Version=" 1.0.0" Manufacturer=".com">
<Package Id="53164a65-f286-11db-8314-0800200c9a66"
Compressed="yes" Description="This installer will install all of the portals
and services necessary to run the .com web site." InstallerVersion="100"
Languages="1031" Manufacturer=".com" ShortNames="no" />
<Media Id="1" Cabinet="App.cab" EmbedCab="yes" />
<Property Id="ROOTDRIVE" Value="C:\" />
<Directory Id="ApplicationInstallers" Name="SourceDir">
<Directory Id="Setup" Name="Setup">
<Component Id="InstallationMSIs" Guid=
"53164a67-f286-11db-8314-0800200c9a66">
<File Id=" ASPAAJAXExtSetup.msi" LongName="
ASPAJAXExtSetup.msi" Name="AJAXSET.MSI" Source="setup\ASPAJAXExtSetup.msi"
DiskId="1" />
<File Id="dotnetfx3.exe " LongName="dotnetfx3.exe"
Name="DOTNET3.MSI" Source="setup\dotnetfx3.exe" DiskId="1" />
<File Id="AdministrativePortal.msi" LongName="
Administrative Portal.msi" Name="VAP.MSI" Source="setup\ Administrative
Portal.msi" DiskId="1" />
<File Id="CablePortal.msi" LongName=" Cable Portal.msi"
Name=" VCABP.MSI" Source="setup\ Cable Portal.msi" DiskId="1" />
<File Id="ConsumerPortal.msi" LongName=" Consumer
Portal.msi" Name="VCP.MSI" Source="setup\ Consumer Portal.msi" DiskId="1"
/>
<File Id="DealerPortal.msi" LongName=" Dealer
Portal.msi" Name="VDP.MSI" Source="setup\ Dealer Portal.msi" DiskId="1" />
<File Id="GlobalScripts.msi" LongName=" Global
Scripts.msi" Name="GSCRIPTS.MSI" Source="setup\ Global Scripts.msi"
DiskId="1" />
<File Id=" ServiceHost.msi" LongName=" Service
Host.msi" Name="VSH.MSI" Source="setup\ Service Host.msi" DiskId="1" />
<File Id="ServicesPortal.msi" LongName=" Services
Portal.msi" Name="VSP.MSI" Source="setup\ Services Portal.msi" DiskId="1"
/>
<File Id="StatisticsCollector.msi" LongName="
Statistics Collector.msi " Name="VSC.MSI" Source="setup\ Statistics
Collector.msi" DiskId="1" />
</Component>
</Directory>
</Directory>
<Feature Id="Complete" Title=".com Complete Installation"
Description=".com Complete Application Installation" Display="expand"
Level="1">
<Feature Id="MainProgram" Title=".com Web Application"
Description=".com Web Application" Level="1">
<ComponentRef Id="InstallationMSIs" />
</Feature>
</Feature>
<Binary Id="GlobalInstallerVBScript" SourceFile="
GlobalApplicationInstaller.vbs" />
<CustomAction Id="Stop_IIS" BinaryKey="GlobalInstallerVBScript"
VBScriptCall="ShutdownIIS" Return="check" />
<CustomAction Id="Uninstall_VCP"
BinaryKey="GlobalInstallerVBScript" VBScriptCall="UninstallConsumerPortal"
Return="check" />
<CustomAction Id="Uninstall_CCP"
BinaryKey="GlobalInstallerVBScript" VBScriptCall="UninstallCConsumerPortal"
Return="check" />
<CustomAction Id="Uninstall_VDP"
BinaryKey="GlobalInstallerVBScript" VBScriptCall="UninstallDealerPortal"
Return="check" />
<CustomAction Id="Uninstall_VAP"
BinaryKey="GlobalInstallerVBScript" VBScriptCall="UninstallAdminPortal"
Return="check" />
<CustomAction Id="Uninstall_VSP"
BinaryKey="GlobalInstallerVBScript" VBScriptCall="UninstallServicePortal"
Return="check" />
<CustomAction Id="Uninstall_VSL"
BinaryKey="GlobalInstallerVBScript" VBScriptCall="UninstallServiceLayer"
Return="check" />
<CustomAction Id="Install_VSL" BinaryKey="GlobalInstallerVBScript"
VBScriptCall="InstallServiceLayer" Return="check" />
<InstallExecuteSequence>
<Custom Action="Stop_IIS" Sequence="1" />
<Custom Action="Uninstall_VCP" Sequence="2" />
<Custom Action="Uninstall_CCP" Sequence="3" />
<Custom Action="Uninstall_VDP" Sequence="4" />
<Custom Action="Uninstall_VAP" Sequence="5" />
<Custom Action="Uninstall_VSP" Sequence="6" />
<Custom Action="Uninstall_VSL" Sequence="7" />
<Custom Action="Install_VSL" Sequence="8" />
</InstallExecuteSequence>
</Product>
</Wix>
VBScript File:
' VBScript for use with .com WiX Global Installer
Public Function ShutdownIIS()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "iisreset -stop"
WshShell.Run "net stop ServiceHost"
Return 0
End Function
Public Function UninstallConsumerPortal()
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run "msiexec /X{8FD4634C-4849-4EC4-8582-500406D36F2C}
/PASSIVE"
Return 0
End Function
Public Function UninstallCConsumerPortal()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "DEL \"D:\\Services\\IIS\\C Consumer Portal\\*.*\" /F /S
/Q"
Return 0
End Function
Public Function UninstallDealerPortal()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "msiexec /X{45542887-0778-4F9F-8ABD-F2D4D9B7395C}
/PASSIVE"
Return 0
End Function
Public Function UninstallAdminPortal()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "msiexec /X{75EF7830-B762-4F14-ADCF-29618E52D976}
/PASSIVE"
Return 0
End Function
Public Function UninstallServicePortal()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "msiexec /X{9F000CEC-E910-47E9-A339-6D36F6261760}
/PASSIVE"
Return 0
End Function
Public Function UninstallServiceLayer()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "msiexec /X{721A2FBE-2B75-48F9-B6A0-AF94707CAF19}
/PASSIVE"
Return 0
End Function
Public Function InstallServiceLayer()
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "msiexec /package \"C:\\Setup\\Service Host.msi\"
/PASSIVE /lv logfiles\VSL.log SERVICEUSERNAME=\"\SLadmin\"
SERVICEPASSWORD=\"v3h1x\""
Return 0
End Function
Can anybody help more?
Thanks,
Nathan
On 4/24/07, Robert Randall < [EMAIL PROTECTED]> wrote:
>
>
>
> Nathan, here are a couple of snippets that might help. You need to use
> the Binary to get the script into the MSI database and then you reference it
> in a custom action. The custom action calls a specific funtion in the
> script source. Then you need to reference the custom action your
> InstallExecuteSequence. This example checks for the existance a WMI class.
>
>
>
>
>
> <Binary Id='InstallerScripts' SourceFile ='InstallerScripts.vbs' />
>
> <CustomAction Id='CustomAction_VerifyHbaApiSupport' BinaryKey='
> InstallerScripts' VBScriptCall= 'IsHbaApiInstalled' Return='check' />
>
>
>
> <InstallExecuteSequence>
>
> …
>
> <Custom Action="CustomAction_VerifyHbaApiSupport" After="
> LaunchConditions">$Component_Dsm>2</ Custom>
>
> …
>
> </InstallExecuteSequence>
>
>
>
> My VBScript looks like
>
>
>
> '
>
> public function IsHbaApiInstalled()
>
>
>
> on error resume next
>
>
>
> '
>
> ' required error code for a failure see MSI docs
>
> '
>
> IsHbaApiInstalled = 1603
>
> '
>
> ' get an instance of SWbemWebServices thru a moniker handling
>
> ' security and and the CIM namespace we need
>
> '
>
> Set sWbemService = GetObject(
> "winmgmts:{impersonationLevel=impersonate}!root/wmi")
>
>
>
> '
>
> ' query a class def - arbitrary choice...
>
> '
>
> Set sWbemObjs = sWbemService.ExecQuery("select * from meta_class
> where __this isa 'MSFC_FCAdapterHBAAttributes'", "WQL", 0)
>
>
>
> '
>
> ' if we got here the class is in the repository and
>
> ' all is good...
>
> '
>
> if Err.Number = 0 then
>
> IsHbaApiInstalled = 0 ' see MSI docs
>
> else
>
> '
>
> ' TODO: should use Session.Message eventually and pull the
>
> ' message from the database to allow for localization
>
> '
>
> MsgBox "Microsoft support for the HBA API is not installed.
> This package requires Microsoft support for the HBA API. Support is
> included in the Fibre Channel Information Tool (fcinfo). See Microsoft's
> web site for more information and to download the tool. After installing
> the Fibre Channel Information Tool try installing Seagate ISE MPIO." &
> vbCrLf & vbCrLf & "The installation process cannot continue.",
> vbOKOnly, "Seagate ISE Multi-path I/O"
>
> end if
>
>
>
> exit function
>
>
>
> end function
>
>
>
>
>
> Regards,
>
> Robert.
>
>
>
> *From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> *On Behalf Of *Nathan Lane
> *Sent:* Tuesday, April 24, 2007 1:40 PM
> *To:* wix-users@lists.sourceforge.net
> *Subject:* [WiX-users] How to use CustomAction with a VBScript
>
>
>
> Hello all,
>
> I am in need of using some VBScripts in my installation and have learned
> that one can use a CustomAction to reference and eventually execute the
> VBScript. But I'm not understanding how that actually works. Looking at
> the Manual > Schema reference, I am very confused about what attributes to
> set and how to set them. Could somebody help me out?
>
> Thanks,
>
> --
> Nathan Lane
>
--
Nathan Lane
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users