Permalink
Fetching contributors…
Cannot retrieve contributors at this time
394 lines (385 sloc) 22.5 KB
<?xml version="1.0" encoding="windows-1252"?>
<?if $(var.Platform) = x64 ?>
<?ifndef OpenSSL ?>
<?define ProductName = "@OPENSC_VS_FF_PRODUCT_NAME@ Light (64bit)" ?>
<?else ?>
<?define ProductName = "@OPENSC_VS_FF_PRODUCT_NAME@ (64bit)" ?>
<?endif ?>
<?define Win64YesNo="yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define PlatformSystemFolder = "System64Folder" ?>
<?define PlatformUpgradeCode = "{9A449570-69A2-11E0-9CC6-955B4824019B}" ?>
<?else ?>
<?ifndef OpenSSL ?>
<?define ProductName = "@OPENSC_VS_FF_PRODUCT_NAME@ Light" ?>
<?else ?>
<?define ProductName = "@OPENSC_VS_FF_PRODUCT_NAME@" ?>
<?endif ?>
<?define Win64YesNo="no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define PlatformSystemFolder = "SystemFolder" ?>
<?define PlatformUpgradeCode = "{69428F65-B96D-458D-BB87-DBB5FDB35DCE}" ?>
<?endif ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Name="$(var.ProductName)"
Id="*"
UpgradeCode="$(var.PlatformUpgradeCode)"
Language="1033"
Codepage="1252"
Version="@OPENSC_VERSION_MAJOR@.@OPENSC_VERSION_MINOR@.@OPENSC_VERSION_FIX@.0"
Manufacturer="@OPENSC_VS_FF_COMPANY_NAME@">
<Package Platform="$(var.Platform)"
Description="@VS_FF_PRODUCT_NAME@ Installer"
Comments="@OPENSC_VS_FF_COMMENTS@"
Manufacturer="@OPENSC_VS_FF_COMPANY_NAME@"
InstallerVersion="300"
Languages="1033"
Compressed="yes"
SummaryCodepage="1252"
InstallScope="perMachine"/>
<!-- OpenSC is covered by LGPL. Extend the license as required with other EULA notes -->
<WixVariable Id="WixUILicenseRtf" Value="license.rtf"/>
<!-- Setup background images -->
<WixVariable Id="WixUIBannerBmp" Value="bannrbmp.bmp"/>
<WixVariable Id="WixUIDialogBmp" Value="dlgbmp.bmp"/>
<!-- Links in info -->
<Property Id="ARPHELPLINK" Value="@PRODUCT_BUGREPORT@"/>
<Property Id="ARPURLINFOABOUT" Value="@OPENSC_VS_FF_PRODUCT_URL@"/>
<Property Id="ARPURLUPDATEINFO" Value="@OPENSC_VS_FF_PRODUCT_UPDATES@"/>
<Property Id="ARPCONTACT" Value="@OPENSC_VS_FF_COMPANY_URL@"/>
<Icon Id="OpenSC.ico" SourceFile="OpenSC.ico" />
<Property Id="ARPPRODUCTICON" Value="OpenSC.ico" />
<!--Custom actions-->
<Binary Id="customactions" SourceFile="$(var.SOURCE_DIR)\win32\customactions.dll" />
<CustomAction Id="RemoveSmartCardConfiguration" BinaryKey="customactions" DllEntry="RemoveSmartCardConfiguration" Execute="deferred" Impersonate="no"/>
<CustomAction Id="AddSmartCardConfiguration" BinaryKey="customactions" DllEntry="AddSmartCardConfiguration" Execute="commit" Impersonate="no"/>
<Media Id="1" Cabinet="OpenSC.cab" EmbedCab="yes" CompressionLevel="high"/>
<MajorUpgrade DowngradeErrorMessage="Can't downgrade." AllowSameVersionUpgrades="yes"/>
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- Install critical DLL-s to system folder. NB! Id-s can not contain "-" characters! -->
<Directory Id="$(var.PlatformSystemFolder)" Name=".">
<Component Id="opensc_pkcs11.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs11\opensc-pkcs11.dll" Vital="yes"/>
</Component>
<Component Id="onepin_opensc_pkcs11.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs11\onepin-opensc-pkcs11.dll" Vital="yes"/>
</Component>
<Component Id="opensc_minidriver.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\minidriver\opensc-minidriver.dll" Vital="yes"/>
</Component>
<!-- install an alias for the Base smart card CSP. Using a different CSP in minidriver installation deactivate the plug and play feature
but not all other components like the pin change screen available after ctrl+alt+del.
It is because the "80000001" entry is still returning the minidriver dll.-->
<Component Id="openscBaseCSP" Guid="*" Win64="$(var.Win64YesNo)">
<RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Cryptography\Defaults\Provider\OpenSC CSP">
<RegistryValue Type="string" Name="Image Path" Value="basecsp.dll" KeyPath="yes"/>
<RegistryValue Type="integer" Name="Type" Value="1"/>
</RegistryKey>
<!-- when the x64 installer will install x86 components on x64 plateform too
<?if $(var.Platform) = x64 ?>
<RegistryKey Root="HKLM" Key="SOFTWARE\Wow6432Node\Microsoft\Cryptography\Defaults\Provider\OpenSC CSP">
<RegistryValue Type="string" Name="Image Path" Value="basecsp.dll"/>
<RegistryValue Type="integer" Name="Type" Value="1"/>
</RegistryKey>
<?endif?>
-->
</Component>
</Directory>
<!-- Install tools and profiles to Program Files -->
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="PFiles">
<Directory Id="OpenSC_Project_Dir" Name="OpenSC Project">
<!-- Most of the stuff goes to the Program Files folder -->
<Directory Id="PKCS11SPYINSTALLDIR" Name="PKCS11-Spy">
<Component Id="pkcs11_spy.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs11\pkcs11-spy.dll"/>
<RegistryKey Id="Pkcs11SpyRegs" Root="HKLM" Key="Software\[Manufacturer]\PKCS11-Spy" Action="createAndRemoveOnUninstall">
<RegistryValue Type="string" Name="Module" Value="%SystemRoot%\system32\opensc-pkcs11.dll"/>
<RegistryValue Type="string" Name="Output" Value="%TEMP%\pkcs11-spy.log"/>
</RegistryKey>
</Component>
</Directory>
<Directory Id="INSTALLDIR" Name="OpenSC">
<!-- opensc.conf sample goes to installation directory -->
<Component Id="opensc.conf" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\etc\opensc.conf" Name="opensc.conf" KeyPath="yes"/>
<!-- -->
<RegistryKey Id="OpenscRegs" Root="HKLM" Key="Software\[Manufacturer]\OpenSC" Action="createAndRemoveOnUninstall">
<RegistryValue Type="string" Name="ConfigFile" Value="[INSTALLDIR]opensc.conf"/>
<RegistryValue Type="string" Name="ProfileDir" Value="[INSTALLDIR]profiles"/>
<RegistryValue Type="string" Name="SmDir" Value="[INSTALLDIR]tools"/>
<RegistryValue Type="integer" Name="MiniDriverDebug" Value="0"/>
</RegistryKey>
</Component>
<!-- Tools have their own folder -->
<Directory Id="INSTALLDIR_TOOLS" Name="tools">
<?ifdef zlib ?>
<Component Id="zlib1.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.zlib)\zlib1.dll" Vital="yes"/>
</Component>
<?endif ?>
<Component Id="opensc.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\libopensc\opensc.dll" Vital="yes"/>
</Component>
<Component Id="opensc_explorer.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\opensc-explorer.exe" Vital="yes"/>
</Component>
<Component Id="opensc_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\opensc-tool.exe" Vital="yes"/>
</Component>
<Component Id="pkcs11_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\pkcs11-tool.exe" Vital="yes"/>
</Component>
<Component Id="cardos_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\cardos-tool.exe" Vital="yes"/>
</Component>
<Component Id="eidenv.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\eidenv.exe" Vital="yes"/>
</Component>
<Component Id="pkcs15_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\pkcs15-tool.exe" Vital="yes"/>
</Component>
<Component Id="pkcs15_crypt.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\pkcs15-crypt.exe" Vital="yes"/>
</Component>
<Component Id="openpgp_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\openpgp-tool.exe" Vital="yes"/>
</Component>
<Component Id="iasecc_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\iasecc-tool.exe" Vital="yes"/>
</Component>
<?ifdef OpenSSL ?>
<Component Id="smm_local.dll" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\smm\smm-local.dll" Vital="yes"/>
</Component>
<Component Id="cryptoflex_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\cryptoflex-tool.exe" Vital="yes"/>
</Component>
<Component Id="pkcs15_init.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\pkcs15-init.exe" Vital="yes"/>
</Component>
<Component Id="netkey_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\netkey-tool.exe" Vital="yes"/>
</Component>
<Component Id="piv_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\piv-tool.exe" Vital="yes"/>
</Component>
<Component Id="westcos_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\westcos-tool.exe" Vital="yes"/>
</Component>
<Component Id="sc_hsm_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\sc-hsm-tool.exe" Vital="yes"/>
</Component>
<Component Id="dnie_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\dnie-tool.exe" Vital="yes"/>
</Component>
<Component Id="gids_tool.exe" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\tools\gids-tool.exe" Vital="yes"/>
</Component>
<?endif ?>
</Directory>
<?ifdef OpenSSL ?>
<Directory Id="INSTALLDIR_PROFILES" Name="profiles">
<Component Id="cyberflex.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\cyberflex.profile"/>
</Component>
<Component Id="flex.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\flex.profile"/>
</Component>
<Component Id="gpk.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\gpk.profile"/>
</Component>
<Component Id="miocos.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\miocos.profile"/>
</Component>
<Component Id="incrypto34.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\incrypto34.profile"/>
</Component>
<Component Id="jcop.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\jcop.profile"/>
</Component>
<Component Id="muscle.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\muscle.profile"/>
</Component>
<Component Id="pkcs15.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\pkcs15.profile"/>
</Component>
<Component Id="asepcos.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\asepcos.profile"/>
</Component>
<Component Id="cardos.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\cardos.profile"/>
</Component>
<Component Id="entersafe.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\entersafe.profile"/>
</Component>
<Component Id="epass2003.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\epass2003.profile"/>
</Component>
<Component Id="myeid.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\myeid.profile"/>
</Component>
<Component Id="setcos.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\setcos.profile"/>
</Component>
<Component Id="starcos.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\starcos.profile"/>
</Component>
<Component Id="westcos.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\westcos.profile"/>
</Component>
<Component Id="oberthur.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\oberthur.profile"/>
</Component>
<Component Id="authentic.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\authentic.profile"/>
</Component>
<Component Id="rutoken.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\rutoken.profile"/>
</Component>
<Component Id="rutoken_ecp.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\rutoken_ecp.profile"/>
</Component>
<Component Id="ias_adele_admin1.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\ias_adele_admin1.profile"/>
</Component>
<Component Id="ias_adele_admin2.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\ias_adele_admin2.profile"/>
</Component>
<Component Id="ias_adele_common.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\ias_adele_common.profile"/>
</Component>
<Component Id="iasecc_admin_eid.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\iasecc_admin_eid.profile"/>
</Component>
<Component Id="iasecc_generic_oberthur.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\iasecc_generic_oberthur.profile"/>
</Component>
<Component Id="iasecc_generic_pki.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\iasecc_generic_pki.profile"/>
</Component>
<Component Id="iasecc.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\iasecc.profile"/>
</Component>
<Component Id="schsm.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\sc-hsm.profile"/>
</Component>
<Component Id="openpgp.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\openpgp.profile"/>
</Component>
<Component Id="isoApplet.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\isoApplet.profile"/>
</Component>
<Component Id="gids.profile" Guid="*" Win64="$(var.Win64YesNo)">
<File Source="$(var.SOURCE_DIR)\src\pkcs15init\gids.profile"/>
</Component>
</Directory>
<?endif ?>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="OpenSC Project">
<Component Id="ProgramMenuDir" Guid="*">
<util:InternetShortcut Id="OnlineDocumentationShortcut" Name="OpenSC wiki" Target="https://github.com/OpenSC/OpenSC/wiki"/>
<RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</Directory>
</Directory>
</Directory>
<!-- Set up the features -->
<Feature Id="Complete" Level="1" Title="OpenSC software suite" Display="expand">
<Feature Id="OpenSC_core" Level="1" Title="OpenSC core library" Description="Core DLL and configuration file used by all other components." Absent="disallow">
<ComponentRef Id="opensc.dll"/>
<?ifdef zlib ?>
<ComponentRef Id="zlib1.dll"/>
<?endif ?>
<ComponentRef Id="opensc.conf"/>
<?ifdef OpenSSL ?>
<ComponentRef Id="smm_local.dll"/>
<?endif ?>
</Feature>
<Feature Id="OpenSC_pkcs11" Level="1" Title="OpenSC PKCS#11 module" Description="PKCS#11 module usd by most open source and cross-platform software (like Firefox, Putty, TrueCrypt, OpenVPN etc)" TypicalDefault="install">
<ComponentRef Id="opensc_pkcs11.dll"/>
<ComponentRef Id="onepin_opensc_pkcs11.dll"/>
</Feature>
<Feature Id="PKCS11_spy" Level="1" Title="PKCS#11 Spy module" Description="Module of the PKCS#11 spy." Absent="allow">
<ComponentRef Id="pkcs11_spy.dll"/>
</Feature>
<Feature Id="OpenSC_minidriver" Level="1" Title="OpenSC minidriver" Description="OpenSC minidriver for using smart cards with native Windows CSP applications (like Internet Explorer)" Absent="allow">
<ComponentRef Id="opensc_minidriver.dll"/>
<ComponentRef Id="openscBaseCSP"/>
</Feature>
<!-- Tools and profiles are for personalization -->
<Feature Id="OpenSC_tools" Level="1" Title="Tools and profiles" Description="Tools for debugging and personalization. Includes profiles needed for running pkcs15-init.exe">
<ComponentRef Id="opensc_explorer.exe"/>
<ComponentRef Id="opensc_tool.exe"/>
<ComponentRef Id="pkcs11_tool.exe"/>
<ComponentRef Id="cardos_tool.exe"/>
<ComponentRef Id="eidenv.exe"/>
<ComponentRef Id="pkcs15_tool.exe"/>
<ComponentRef Id="pkcs15_crypt.exe"/>
<ComponentRef Id="openpgp_tool.exe"/>
<ComponentRef Id="iasecc_tool.exe"/>
<?ifdef OpenSSL ?>
<ComponentRef Id="cryptoflex_tool.exe"/>
<ComponentRef Id="pkcs15_init.exe"/>
<ComponentRef Id="netkey_tool.exe"/>
<ComponentRef Id="piv_tool.exe"/>
<ComponentRef Id="westcos_tool.exe"/>
<ComponentRef Id="sc_hsm_tool.exe"/>
<ComponentRef Id="dnie_tool.exe"/>
<ComponentRef Id="gids_tool.exe"/>
<ComponentRef Id="cyberflex.profile"/>
<ComponentRef Id="flex.profile"/>
<ComponentRef Id="gpk.profile"/>
<ComponentRef Id="miocos.profile"/>
<ComponentRef Id="incrypto34.profile"/>
<ComponentRef Id="jcop.profile"/>
<ComponentRef Id="muscle.profile"/>
<ComponentRef Id="pkcs15.profile"/>
<ComponentRef Id="asepcos.profile"/>
<ComponentRef Id="cardos.profile"/>
<ComponentRef Id="entersafe.profile"/>
<ComponentRef Id="epass2003.profile"/>
<ComponentRef Id="myeid.profile"/>
<ComponentRef Id="setcos.profile"/>
<ComponentRef Id="starcos.profile"/>
<ComponentRef Id="westcos.profile"/>
<ComponentRef Id="oberthur.profile"/>
<ComponentRef Id="authentic.profile"/>
<ComponentRef Id="rutoken.profile"/>
<ComponentRef Id="rutoken_ecp.profile"/>
<ComponentRef Id="ias_adele_admin1.profile"/>
<ComponentRef Id="ias_adele_admin2.profile"/>
<ComponentRef Id="ias_adele_common.profile"/>
<ComponentRef Id="iasecc_admin_eid.profile"/>
<ComponentRef Id="iasecc_generic_oberthur.profile"/>
<ComponentRef Id="iasecc_generic_pki.profile"/>
<ComponentRef Id="iasecc.profile"/>
<ComponentRef Id="schsm.profile"/>
<ComponentRef Id="openpgp.profile"/>
<ComponentRef Id="isoApplet.profile"/>
<ComponentRef Id="gids.profile"/>
<?endif ?>
</Feature>
<Feature Id="OpenSC_menu" Level="1" Title="Start menu entries" Description="Start menu entries: link to documentation">
<ComponentRef Id="ProgramMenuDir"/>
</Feature>
</Feature>
<UIRef Id="WixUI_Mondo"/>
<UIRef Id="WixUI_ErrorProgressText"/>
<InstallExecuteSequence>
<!-- UnInstall sequence -->
<!-- clean the smart card registration (only at uninstall of the feature OpenSC_minidriver) -->
<Custom Action='RemoveSmartCardConfiguration' Before="RemoveFiles">
<![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (&OpenSC_minidriver=2) AND (!OpenSC_minidriver=3) ]]>
</Custom>
<!-- Install sequence -->
<!-- add the smart card registration (only at install of the feature OpenSC_minidriver) -->
<Custom Action='AddSmartCardConfiguration' Before="RemoveSmartCardConfiguration">
<![CDATA[ (NOT (REMOVE="ALL")) AND (NOT UPGRADINGPRODUCTCODE) AND (&OpenSC_minidriver=3) AND (!OpenSC_minidriver=2) ]]>
</Custom>
</InstallExecuteSequence>
</Product>
</Wix>