Hi,

I'm having problems doing a major upgrade. I'm using WiX 3.5 to install a 
driver using DIFxAPP and start it using ServiceControl:

<Component Id="sctp.sys" Win64="$(var.Win64)" 
Guid="fa538c80-6b0b-4736-b479-a3dce8f8a6a8">
        <File Id="sctp.sys" Name="sctp.sys" KeyPath="yes" Checksum="yes"
                Source="bin\$(env.BUILD_ALT_DIR)\sctp.sys" />
        <RegistryKey Action='createAndRemoveOnUninstall' Id='eventlog' 
Root='HKLM'
                        
Key='System\CurrentControlSet\Services\Eventlog\System\sctp'>
                <RegistryValue Id='EventMessageFile' Name='EventMessageFile' 
Type='expandable'
                        Value='%SystemRoot%\System32\drivers\sctp.sys'/>
                <RegistryValue Id='TypesSupported' Name='TypesSupported' 
Type='integer' Value='7'/>
        </RegistryKey>
        <difx:Driver Legacy="yes"/>
        <ServiceControl Id="sctp_service" Name="Sctp" Start="install" 
Stop="both" Remove="uninstall" Wait="no"/>
</Component>

Everything goes well during an installation, but I've seen issues both during 
uninstall and a major upgrade:
if I try and uninstall SctpDrv before the DIFx driver package, it claims to 
have failed but it does complete the
uninstallation; during a major upgrade it removes the previous version but 
fails to complete the 
upgrade, with DIFxAPP erroring out with:

DIFXAPP: ERROR:  Unable to revert to a previous driver store for service 'Sctp'.
DIFXAPP: ERROR:  Will attempt to uninstall the driver.
DIFXAPP: ERROR:  Error unable to open service 'Sctp' to delete it because of 
error 0x424
DIFXAPP: ERROR:  Error occurred while deleting service to uninstall the driver 
store.
DIFXAPP: ERROR:  We were unable to install any other driver store entry to 
support the service Sctp and we also failed to delete the service.
DIFXAPP: ERROR:  Failed to uninstall the driver. Attempting to undo system 
changes ... (Error code 0x643: Fatal error during installation.)

It leaves the driver package entry present, but with SctpDrv uninstalled.

the only strange thing I've noticed is that the driver and netshell helper is 
listed twice in the list of components:

MSI (s) (44:C0) [17:09:02:640]: Feature: Complete; Installed: Local;   Request: 
Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: ws2sctp.h; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: echo_client.c; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: echo_server.c; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: echo_server2.c; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: spinstall.exe; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: echo_client.exe; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: echo_server.exe; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: sctpmon.dll; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: sctp.inf; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: sctp.cat; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: sctp.sys; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: sctpsp.lib; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: libsctpsp.a; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: README.txt; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: CHANGES.txt; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: SctpDrv.chm; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: sctpsp32.dll; Installed: Local;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: __sctpmon.dll65; Installed: Null;   
Request: Absent;   Action: Absent
MSI (s) (44:C0) [17:09:02:640]: Component: __sctp.sys65; Installed: Null;   
Request: Absent;   Action: Absent

Am I misunderstanding how to use DIFxAPP, or is there another problem with my 
WiX sources?

The Upgrade section I'm using is:

<Upgrade Id="$(var.UpgradeCode)">
        <UpgradeVersion 
Minimum="$(var.VersionMajor).$(var.VersionMinor).$(var.VersionRev)"
                IncludeMinimum="no"
                OnlyDetect="yes"
                Language="$(var.Language)"
                Property="NEWPRODUCTFOUND"/>
        <UpgradeVersion Minimum="1.1.0"
                IncludeMinimum="yes"
                
Maximum="$(var.VersionMajor).$(var.VersionMinor).$(var.VersionRev)"
                IncludeMaximum="no"
                Language="$(var.Language)"
                Property="UPGRADEFOUND"/>
</Upgrade>

with RemoveExistingProducts scheduled after InstallInitialize.

The msi log is available at 
http://www.bluestop.org/SctpDrv/tmp/msi_log_20100115.txt - the source file 
containing the components is at 
http://www.bluestop.org/viewvc/repos/sctpDrv/wix/module-common.wxs?revision=44&view=markup
 .

-- 
Bruce Cran




------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for Conference
attendees to learn about information security's most important issues through
interactions with peers, luminaries and emerging and established companies.
http://p.sf.net/sfu/rsaconf-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to