Вопрос

I am new to WiX and I have been trying to create a installer for my application. Rest of things are working fine but I am stuck at one point. I need to unzip a file once it is copied to Program Files Folder. I am not sure if windows can do it directly, so I got a unzip.exe from internet and it is working fine for unzipping. I have copied that file also in my Program Files Folder. But how do I unzip my file there. I tried the following code but with no result:-

**

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
  <Product Name='Test' Id='xxxxxx' UpgradeCode='xxxxxxx'
    Language='1033' Codepage='1252' Version='0.1.3' Manufacturer=''>
    <Package Id='*' Keywords='Installer' Description=""
      Comments='' Manufacturer=''
      InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />

    <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
    <Property Id='DiskPrompt' Value="Designer Installation [1]" />
    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
        <Directory Id='Test' Name='Test'>

                  <Component Id='unzip' Guid='xxxxxxx'>
              <File Id='unzipexe' Name='unzip.exe' DiskId='1' Source='unzip.exe' KeyPath='yes' />
          </Component>
                  <Component Id='sdk' Guid='xxxxxxxx'>
              <File Id='SDK' Name='sdk.zip' DiskId='1' Source='sdk.zip' KeyPath='yes' />
          </Component>
                  <Component Id='testlogger' Guid='xxxxxxx'>
              <File Id='TestLog' Name='Test.log' DiskId='1' Source='Test.log' KeyPath='yes' />
            </Component>

        </Directory>
      </Directory>
      <Directory Id="DesktopFolder" Name="Desktop" />
    </Directory>
    <Feature Id='Complete' Level='1'>
      <ComponentRef Id='unzip' />
          <ComponentRef Id='sdk' />
          <ComponentRef Id='testlogger' />
    </Feature>

    <Property Id='Unzipper'>TARGETDIR\ProgramFilesFolder\Test\unzip.exe</Property>
    <CustomAction Id='zipFile' Property='Unzipper' ExeCommand='sdk.zip' Return='asyncWait'/>
    <InstallExecuteSequence>
        <Custom Action='zipFile' After='InstallFinalize'>NOT Installed</Custom>
    </InstallExecuteSequence>
  </Product>
</Wix>

**

Can someone help me out on this????

Это было полезно?

Решение

This isn't good Windows Installer design to install and then extract a ZIP. You should just extract the ZIP in your dev/build environment and author all of the files into the installer. Otherwise you are hiding all of the details of Windows Installer and losing all of the benefits that Windows Installer provides.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top