Hi All,

I'm trying to install a component that has a condition based on a GUI 
checkbox property.
I preset the property to the "1" value to set it to the checked state:

    <Property Id='write_to_registry_check_box_value'> 1 </Property>
...
            <Control Id="WriteToRegistryBox" Type="CheckBox" X="25" Y="75"
                 Width="300" Height="15" 
Property="write_to_registry_check_box_value"
                 CheckBoxValue="1" Text="Write to registry"/>
...
If we check such a property value on pushing the "Next" button, it works 
perfectly. However, it does not work in a component condition (always 
"1"). Also, the property doesn't  work in a custom action.

I use wix 3.5 on Windows 7 professional (UAC is on).

After the signature, I've included a complete example which should 
demonstrate the problem.

Thank you!

-- 
Best Regards,
Yuri Sevastyanov,
TightVNC Team

Example code:

<?xml version='1.0' encoding='Windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>

  <Product
    Name='Product_name1'
    Id='{14CA11E9-67FE-4d3f-854F-B361FE3884F4}'
    UpgradeCode='{A442C09E-7050-4bdf-B95D-0520A06E8EF0}'
    Language='1033'
    Codepage='1252'
    Version='2.0.0.0'
    Manufacturer='Manufacturer_name1'
  >
    <Package
      Id='*'
      Keywords='Installer'
      Manufacturer='Manufacturer_name1'
      InstallerVersion='310'
      Platform='x64'
      Compressed='yes'
      InstallPrivileges='elevated'
      InstallScope='perMachine'
    />

    <Upgrade Id='{A442C09E-7050-4bdf-B95D-0520A06E8EF0}'>
      <UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND'
        Minimum='1.0.99.0' IncludeMinimum='yes'
        Maximum='2.0.0.0' IncludeMaximum='no' />
    </Upgrade>

    <Media Id='1' Cabinet='setup.cab' EmbedCab='yes' />

    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFiles64Folder' Name='PFiles'>
        <Directory Id='INSTALLDIR' Name='Product_name'>
          <Component Id='serverExe' 
Guid='{24E8B47B-DA2F-4874-8474-051A4C4226E1}' Win64='yes'>
            <File Id='someEXE' Name='tvnserver.exe' DiskId='1' 
Source='server.exe' KeyPath='yes'>
            </File>
          </Component>
        </Directory>
      </Directory>


      <Component Id='TestRegistryWriting'
                 Feature='Complete'
                 Guid='{9604D771-3D6C-4f75-ADFD-CA3B4BE7ECA1}'
                 Permanent='yes'>
        <RegistryValue Id='TestRegistryWriting_RegValue' Action='write'
                       Root='HKLM' Key='Software\Product_name'
                       Name='Test_registry_writing' Value='0' 
Type='integer'>
          <Permission GenericAll='yes' User='System'/>
          <Permission GenericAll='yes' User='Administrators'/>
        </RegistryValue>
        <Condition>
          <!-- The write_to_registry_check_box_value value is always 1
               and the component installes always too. Even if the 
checkbox is
               unchecked. -->
          write_to_registry_check_box_value = 1
        </Condition>
      </Component>
    </Directory>

    <Feature Id='Complete'
             Title='Products'
             Description='You can check the folowing elements to install'
             Display='expand'
             Level='1'
             ConfigurableDirectory='INSTALLDIR'>
      <Feature Id='Server'
               Title='Server'
               Description='Server Description'
               Level='1'>
        <ComponentRef Id='serverExe' />
      </Feature>
    </Feature>

    <Property Id='A_PROPERTY'> 1 </Property>
    <!-- Condition initialization -->
    <SetProperty Id='use_auth_checkbox_value' Value='1'
                 After='FindRelatedProducts'> A_PROPERTY = 1 </SetProperty>
    <!-- Unconditional initialization -->
    <Property Id='write_to_registry_check_box_value'> 1 </Property>

    <UI Id='UI_ID'>
      <UIRef Id="WixUI_Mondo" />
      <UIRef Id="WixUI_ErrorProgressText" />

      <Dialog Id="ServiceConfig" Width="370" Height="270"
              Title="Setup" NoMinimize="yes">
        <Control Id="UseAuthCheckBox" Type="CheckBox" X="25" Y="55"
                 Width="300" Height="15" Property="use_auth_checkbox_value"
                 CheckBoxValue="1" Text="Use auth"/>
        <Control Id="WriteToRegistryBox" Type="CheckBox" X="25" Y="75"
                 Width="300" Height="15" 
Property="write_to_registry_check_box_value"
                 CheckBoxValue="1" Text="Write to registry"/>
        <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56"
                 Height="17" Text="&amp;Back">
          <Publish Event="NewDialog" Value="CustomizeDlg" Order="1">
            WixUI_InstallMode = "InstallCustom" OR WixUI_InstallMode = 
"Change"
          </Publish>
          <Publish Event="NewDialog" Value="SetupTypeDlg" Order="2">
            WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = 
"InstallComplete"
          </Publish>
        </Control>
        <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" 
Height="17" Default="yes" Text="&amp;Next">
          <Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        </Control>

        <Control Id="Cancel" Type="PushButton" X="304" Y="243" 
Width="56" Height="17" Cancel="yes" Text="Cancel">
          <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
        </Control>

        <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" 
Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
        <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" 
Height="0" />
        <Control Id="Title" Type="Text" X="15" Y="6" Width="200" 
Height="15" Transparent="yes" NoPrefix="yes">
        </Control>
        <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" 
Height="0" />
      </Dialog>

      <Publish Dialog="SetupTypeDlg" Control="TypicalButton" 
Event="NewDialog" Value="ServiceConfig" Order="2">1</Publish>
      <Publish Dialog="SetupTypeDlg" Control="CompleteButton" 
Event="NewDialog" Value="ServiceConfig" Order="2">1</Publish>

      <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog"
               Value="ServiceConfig" Order="2">
        (WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = 
"InstallComplete" OR
        WixUI_InstallMode = "InstallCustom" OR WixUI_InstallMode = 
"Change") AND
        (<![CDATA[&Server=3]]>)
      </Publish>

      <Publish Dialog="VerifyReadyDlg" Control="Back"
               Event="NewDialog" Value="ServiceConfig" Order="10">
        1
      </Publish>
    </UI>

    <CustomAction Id="SetPasswordAction"
                  FileKey="someEXE"
                  ExeCommand="-setpass"
                  Impersonate="no"
                  Execute="commit"
                  Return="ignore" />

    <InstallExecuteSequence>
      <RemoveExistingProducts After="InstallInitialize" />

      <Custom Action="SetPasswordAction" Before="InstallFinalize">
        <!-- The use_auth_checkbox_value value is always 1
             and the CA starts always too. Even if the checkbox is
             unchecked. -->
        use_auth_checkbox_value = 1 AND <![CDATA[&Server=3]]> AND NOT REMOVE
      </Custom>
    </InstallExecuteSequence>

  </Product>
</Wix>



------------------------------------------------------------------------------
BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA
Learn about the latest advances in developing for the 
BlackBerry&reg; mobile platform with sessions, labs & more.
See new tools and technologies. Register for BlackBerry&reg; DevCon today!
http://p.sf.net/sfu/rim-devcon-copy1 
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to