Difference between revisions of "7-Zip"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
(fix package GUID MSI installer package.xml)
(MSI installer package.xml for use with existing older exe based installs)
Line 52: Line 52:
 
   <package id="7zip"  
 
   <package id="7zip"  
 
         name="7-Zip"  
 
         name="7-Zip"  
         revision="464"  
+
         revision="465"  
 
         reboot="false"  
 
         reboot="false"  
 
         priority="0">
 
         priority="0">
  
     <check type="uninstall" condition="exists" path="7-Zip 4.64" />
+
     <check type="uninstall" condition="exists" path="7-Zip 4.65" />
  
 
     <install cmd='%comspec% /c if exist "%PROGRAMFILES%\7-Zip\Uninstall.exe" "%PROGRAMFILES%\7-Zip\Uninstall.exe" /S' />  
 
     <install cmd='%comspec% /c if exist "%PROGRAMFILES%\7-Zip\Uninstall.exe" "%PROGRAMFILES%\7-Zip\Uninstall.exe" /S' />  
     <install cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z464.msi' />
+
     <install cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z465.msi' />
  
 
     <upgrade cmd='%comspec% /c if exist "%PROGRAMFILES%\7-Zip\Uninstall.exe" "%PROGRAMFILES%\7-Zip\Uninstall.exe" /S' />  
 
     <upgrade cmd='%comspec% /c if exist "%PROGRAMFILES%\7-Zip\Uninstall.exe" "%PROGRAMFILES%\7-Zip\Uninstall.exe" /S' />  
     <upgrade cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z464.msi' />
+
     <upgrade cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z465.msi' />
  
     <remove  cmd='msiexec /qn /norestart /x %SOFTWARE%\7zip\7z464.msi' />
+
     <remove  cmd='msiexec /qn /norestart /x %SOFTWARE%\7zip\7z465.msi' />
 
   </package>
 
   </package>
 
</source>
 
</source>

Revision as of 23:32, 24 June 2009

A free file compressor/extractor: www.7-zip.org


MSI installer package.xml

   <package id="7zip"
         name="7-Zip"
         revision="465"
         reboot="false"
         priority="0">

       <check type="uninstall" condition="exists" path="7-Zip 4.65" />

       <install cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z465.msi' />

       <upgrade cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z465.msi' />

       <remove  cmd='msiexec /qn /x{23170F69-40C1-2701-0465-000001000000}' />

   </package>

Alternatively to the use of the GUID you might use the MSI file for uninstall as well. I prefer this method since some packagers tend to create new GUID strings on each release - so you need to search for the right ID at each release. Using the MSI file obsoletes this step:

<?xml version="1.0" encoding="utf-8" ?>
<packages>
  <package id='7zip' 
        name='7-Zip' 
        revision='465'
        priority='50' 
        reboot='false' >

    <check type='uninstall' condition='exists' path='7-Zip 4.65' />

    <install cmd='msiexec /i "%SOFTWARE%\7zip\7z465.msi" /qn' />

    <upgrade cmd='msiexec /i "%SOFTWARE%\7zip\7z465.msi" /qn' />

    <remove cmd='msiexec /x "%SOFTWARE%\7zip\7z465.msi" /qn' />

  </package>
</packages>

MSI installer package.xml for use with existing older exe based installs

Background The hosts on my network are a mix of 7-Zip (various versions) .exe and .msi based installs. If you do a .msi based install without first uninstalling the .exe version it will leave some files from the .exe based install intact as well as an entry in "Add/Remove Programs".

Use this if you have existing .exe based installs of 7-Zip (such as 4.20) and you would like to uninstall them before switching to an .msi based install.

  <package id="7zip" 
        name="7-Zip" 
        revision="465" 
        reboot="false" 
        priority="0">

    <check type="uninstall" condition="exists" path="7-Zip 4.65" />

    <install cmd='%comspec% /c if exist "%PROGRAMFILES%\7-Zip\Uninstall.exe" "%PROGRAMFILES%\7-Zip\Uninstall.exe" /S' /> 
    <install cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z465.msi' />

    <upgrade cmd='%comspec% /c if exist "%PROGRAMFILES%\7-Zip\Uninstall.exe" "%PROGRAMFILES%\7-Zip\Uninstall.exe" /S' /> 
    <upgrade cmd='msiexec /qn /norestart /i %SOFTWARE%\7zip\7z465.msi' />

    <remove  cmd='msiexec /qn /norestart /x %SOFTWARE%\7zip\7z465.msi' />
  </package>

EXE installer package.xml

  <package id="7zip"
        name="7-Zip"
        revision="464"
        reboot="false"     
        priority="0">

    <check type="file" condition="exists" path="%PROGRAMFILES%\7-Zip\7zFM.exe" />

    <install cmd='%SOFTWARE%\7zip\7z464.exe /S'>
    <exit code="0" />
    </install>

    <remove cmd='"%PROGRAMFILES%\7-Zip\Uninstall.exe" /S'>
        <exit code="0"/>
    </remove>

  </package>

MSI Installer package.xml, sets 7-zip as default archive application

In meantime, while 7-zip author considers installer switches for file associations, you can use registry files to do it yourself.

<packages>
  <package id="7zip" 
        name="7-Zip" 
        revision="464" 
        priority="0" 
        reboot="false">
    <check type="uninstall" condition="exists" path="7-Zip 4.64"/>

    <install cmd="msiexec /qn /norestart /i %SOFTWARE%\7zip\7z464.msi"/>
    <install cmd="regedit /s %SETTINGS%\7zip.reg"/>

    <upgrade cmd="msiexec /qn /norestart /i %SOFTWARE%\7zip\7z64.msi"/>
    <upgrade cmd="regedit /s %SETTINGS%\7zip.reg"/>

    <remove cmd="msiexec /qn /x{23170F69-40C1-2701-0464-000001000000}"/>
  </package>
</packages>

The .reg file:

Windows Registry Editor Version 5.00 
 
[HKEY_CLASSES_ROOT\.7z] 
@="7-Zip.7z" 
[HKEY_CLASSES_ROOT\.arj] 
@="7-Zip.arj" 
[HKEY_CLASSES_ROOT\.bz2] 
@="7-Zip.bz2" 
[HKEY_CLASSES_ROOT\.bzip2] 
@="7-Zip.bzip2" 
[HKEY_CLASSES_ROOT\.cab] 
@="7-Zip.cab" 
[HKEY_CLASSES_ROOT\.cpio] 
@="7-Zip.cpio" 
[HKEY_CLASSES_ROOT\.deb] 
@="7-Zip.deb" 
[HKEY_CLASSES_ROOT\.gz] 
@="7-Zip.gz" 
[HKEY_CLASSES_ROOT\.gzip] 
@="7-Zip.gzip" 
[HKEY_CLASSES_ROOT\.iso] 
@="7-Zip.iso" 
[HKEY_CLASSES_ROOT\.lha] 
@="7-Zip.lha" 
[HKEY_CLASSES_ROOT\.lzh] 
@="7-Zip.lzh" 
[HKEY_CLASSES_ROOT\.rar] 
@="7-Zip.rar" 
[HKEY_CLASSES_ROOT\.rpm] 
@="7-Zip.rpm" 
[HKEY_CLASSES_ROOT\.split] 
@="7-Zip.split" 
[HKEY_CLASSES_ROOT\.swm] 
@="7-Zip.swm" 
[HKEY_CLASSES_ROOT\.tar] 
@="7-Zip.tar" 
[HKEY_CLASSES_ROOT\.taz] 
@="7-Zip.taz" 
[HKEY_CLASSES_ROOT\.tbz2] 
@="7-Zip.tbz2" 
[HKEY_CLASSES_ROOT\.tbz] 
@="7-Zip.tbz" 
[HKEY_CLASSES_ROOT\.tgz] 
@="7-Zip.tgz" 
[HKEY_CLASSES_ROOT\.tpz] 
@="7-Zip.tpz" 
[HKEY_CLASSES_ROOT\.wim] 
@="7-Zip.wim" 
[HKEY_CLASSES_ROOT\.z] 
@="7-Zip.z" 
[HKEY_CLASSES_ROOT\.zip] 
@="7-Zip.zip" 
[HKEY_CLASSES_ROOT\7-Zip.7z] 
@="7z Archive" 

[HKEY_CLASSES_ROOT\7-Zip.7z\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,0"  
[HKEY_CLASSES_ROOT\7-Zip.7z\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.7z\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.7z\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.arj] 
@="arj Archive"  
[HKEY_CLASSES_ROOT\7-Zip.arj\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,4"  
[HKEY_CLASSES_ROOT\7-Zip.arj\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.arj\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.arj\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.bz2] 
@="bz2 Archive"  
[HKEY_CLASSES_ROOT\7-Zip.bz2\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,2"  
[HKEY_CLASSES_ROOT\7-Zip.bz2\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.bz2\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.bz2\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.bzip2] 
@="bzip2 Archive"  
[HKEY_CLASSES_ROOT\7-Zip.bzip2\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,2"  
[HKEY_CLASSES_ROOT\7-Zip.bzip2\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.bzip2\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.bzip2\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.cab] 
@="cab Archive"  
[HKEY_CLASSES_ROOT\7-Zip.cab\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,7"  
[HKEY_CLASSES_ROOT\7-Zip.cab\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.cab\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.cab\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.cpio] 
@="cpio Archive"  
[HKEY_CLASSES_ROOT\7-Zip.cpio\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,12"  
[HKEY_CLASSES_ROOT\7-Zip.cpio\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.cpio\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.cpio\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.deb] 
@="deb Archive"  
[HKEY_CLASSES_ROOT\7-Zip.deb\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,11"  
[HKEY_CLASSES_ROOT\7-Zip.deb\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.deb\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.deb\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.gz] 
@="gz Archive"  
[HKEY_CLASSES_ROOT\7-Zip.gz\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,14"  
[HKEY_CLASSES_ROOT\7-Zip.gz\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.gz\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.gz\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.gzip] 
@="gzip Archive"  
[HKEY_CLASSES_ROOT\7-Zip.gzip\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,14"  
[HKEY_CLASSES_ROOT\7-Zip.gzip\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.gzip\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.gzip\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.iso] 
@="iso Archive"  
[HKEY_CLASSES_ROOT\7-Zip.iso\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,8"  
[HKEY_CLASSES_ROOT\7-Zip.iso\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.iso\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.iso\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.lha] 
@="lha Archive"  
[HKEY_CLASSES_ROOT\7-Zip.lha\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,6"  
[HKEY_CLASSES_ROOT\7-Zip.lha\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.lha\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.lha\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""  
[HKEY_CLASSES_ROOT\7-Zip.lzh] 
@="lzh Archive"  
[HKEY_CLASSES_ROOT\7-Zip.lzh\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,6"  
[HKEY_CLASSES_ROOT\7-Zip.lzh\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.lzh\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.lzh\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.rar] 
@="rar Archive" 
[HKEY_CLASSES_ROOT\7-Zip.rar\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,3" 
[HKEY_CLASSES_ROOT\7-Zip.rar\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.rar\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.rar\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.rpm] 
@="rpm Archive" 
[HKEY_CLASSES_ROOT\7-Zip.rpm\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,10" 
[HKEY_CLASSES_ROOT\7-Zip.rpm\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.rpm\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.rpm\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.split] 
@="split Archive" 
[HKEY_CLASSES_ROOT\7-Zip.split\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,9" 
[HKEY_CLASSES_ROOT\7-Zip.split\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.split\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.split\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.swm] 
@="swm Archive" 
[HKEY_CLASSES_ROOT\7-Zip.swm\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,15" 
[HKEY_CLASSES_ROOT\7-Zip.swm\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.swm\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.swm\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.tar] 
@="tar Archive" 
[HKEY_CLASSES_ROOT\7-Zip.tar\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,13" 
[HKEY_CLASSES_ROOT\7-Zip.tar\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tar\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tar\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.taz] 
@="taz Archive" 
[HKEY_CLASSES_ROOT\7-Zip.taz\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,5" 
 
[HKEY_CLASSES_ROOT\7-Zip.taz\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.taz\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.taz\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.tbz2] 
@="tbz2 Archive" 
[HKEY_CLASSES_ROOT\7-Zip.tbz2\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,2" 
[HKEY_CLASSES_ROOT\7-Zip.tbz2\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tbz2\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tbz2\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
 
[HKEY_CLASSES_ROOT\7-Zip.tbz] 
@="tbz Archive" 
 
[HKEY_CLASSES_ROOT\7-Zip.tbz\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,2" 
 
[HKEY_CLASSES_ROOT\7-Zip.tbz\shell] 
@="" 
 
[HKEY_CLASSES_ROOT\7-Zip.tbz\shell\open] 
@="" 
 
[HKEY_CLASSES_ROOT\7-Zip.tbz\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.tgz] 
@="tgz Archive" 
[HKEY_CLASSES_ROOT\7-Zip.tgz\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,14" 
[HKEY_CLASSES_ROOT\7-Zip.tgz\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tgz\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tgz\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.tpz] 
@="tpz Archive" 
[HKEY_CLASSES_ROOT\7-Zip.tpz\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,14" 
[HKEY_CLASSES_ROOT\7-Zip.tpz\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tpz\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.tpz\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.wim] 
@="wim Archive" 
[HKEY_CLASSES_ROOT\7-Zip.wim\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,15" 
[HKEY_CLASSES_ROOT\7-Zip.wim\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.wim\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.wim\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.z] 
@="z Archive" 
[HKEY_CLASSES_ROOT\7-Zip.z\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,5" 
[HKEY_CLASSES_ROOT\7-Zip.z\shell] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.z\shell\open] 
@="" 
[HKEY_CLASSES_ROOT\7-Zip.z\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\"" 
[HKEY_CLASSES_ROOT\7-Zip.zip] 
@="zip Archive" 
[HKEY_CLASSES_ROOT\7-Zip.zip\DefaultIcon] 
@="C:\\Program Files\\7-Zip\\7z.dll,1" 
[HKEY_CLASSES_ROOT\7-Zip.zip\shell] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.zip\shell\open] 
@=""  
[HKEY_CLASSES_ROOT\7-Zip.zip\shell\open\command] 
@="\"C:\\Program Files\\7-Zip\\7zFM.exe\" \"%1\""

7-Zip EXE installer options

"Use the "/S" parameter to do a silent installation and the "/D=dir" parameter to specify the "output directory". These options are case-sensitive. 7-Zip uses the NSIS installer by Nullsoft." - http://www.7-zip.org/faq.html

Links