Automatic account creation is now enabled. Captcha authentication required for account creation and editing unless you are trusted here.

Web Deployment

From WiX Wiki at MindCapers

Jump to: navigation, search

Create website setup with 2.0:


<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wix="http://schemas.microsoft.com/wix/2003/01/wi">

  <xsl:output indent="no" method="xml"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/wix" xml:space="default">
    <xsl:apply-templates />
  </xsl:template>

  <xsl:template match="wix:Component" xml:space="preserve">
    <xsl:element name="ComponentRef"><xsl:attribute
name="Id"><xsl:value-of select="@Id"/></xsl:attribute></xsl:element>
</xsl:template>

</xsl:stylesheet>


To get the installation to work you will need to specify the port aswell. To do this use a property:

<WebSite Id="DefaultWebSite" Description="[TARGETWEBCOMBO]" > <WebAddress Id="AllUnassigned" Port="[TARGETWEBPORT]" /> </WebSite>

To get the port of the selected site should be easy when you use this:

HideVBFunction
 
'===========================================================================
' This function populates the MSI properties of the specified website '===========================================================================
Function PopulateMSIWebSiteProperties()
    Dim oIIS, oSite, r
    ' allow errors
    On Error Resume Next
    ' instanciate the IIS object
    Set oIIS = GetObject("IIS://localhost/W3SVC")
    ' check if an error occurred: if an error occurs pass the error number back to setup
    If Err.Number <> 0 Then
        MsgBox "Unable to open IIS W3SVC Root object - please ensure that IIS is running" & vbCrLf & _
         "    - Error Details: " & Err.Description & " [Number:" &
Hex(Err.Number) & "]", vbCritical, "Error"
        PopulateMSIWebSiteProperties = ERROR_INSTALL_FAILURE
        Exit Function
    Else
        ' iterate through the sites
        For Each oSite in oIIS
            If oSite.Class = "IIsWebServer" Then
                ' if the description is the same as the specified description, get the details
                if oSite.ServerComment = Session.Property("TARGETWEBCOMBO")then
                    'get the properties of the site
                    For Each item in oSite.ServerBindings
                        strServerBinding = item
                        BindingArray = Split(strServerBinding, ":", -1, 1)
                        Session.Property("TARGETWEBPORT") = BindingArray(1)
                        ' only do it for the first serverbinding (there may be more than 1)
                        Exit For
                    Next
                End If
            End If
        Next        
        'return success to MSI
        PopulateMSIWebSiteProperties = ERROR_SUCCESS
    End If
    'clean up
    Set oIIS = Nothing
End Function
 

Personal tools