Replaces use of WinRAR to generate ZIP file with Python script
diff --git a/Tools/msi/buildrelease.bat b/Tools/msi/buildrelease.bat
index 21ce863..2e73f8f 100644
--- a/Tools/msi/buildrelease.bat
+++ b/Tools/msi/buildrelease.bat
@@ -64,13 +64,6 @@
 set _DLLTOOL_PATH=

 :skipdlltoolsearch

 

-where rar /q && goto skiprarsearch

-set _RAR_PATH=

-where /R "%ProgramFiles%\WinRAR" rar > "%TEMP%\rar.loc" 2> nul && set /P _RAR_PATH= < "%TEMP%\rar.loc" & del "%TEMP%\rar.loc" 

-where /R "%ProgramFiles(x86)%\WinRAR" rar > "%TEMP%\rar.loc" 2> nul && set /P _RAR_PATH= < "%TEMP%\rar.loc" & del "%TEMP%\rar.loc" 

-if not exist "%_RAR_PATH%" echo Cannot find WinRAR on PATH or in external && pause

-:skiprarsearch

-

 if defined BUILDX86 (

     call :build x86

     if errorlevel 1 exit /B

@@ -142,7 +135,7 @@
 msbuild "%D%bundle\releaseweb.wixproj" /t:Rebuild %BUILDOPTS% %CERTOPTS% /p:RebuildAll=false

 if errorlevel 1 exit /B

 

-if defined _RAR_PATH msbuild "%D%make_zip.proj" /t:Build %BUILDOPTS% %CERTOPTS% "/p:RAR=%_RAR_PATH%"

+msbuild "%D%make_zip.proj" /t:Build %BUILDOPTS% %CERTOPTS%

 

 if not "%OUTDIR%" EQU "" (

     mkdir "%OUTDIR%\%OUTDIR_PLAT%"

diff --git a/Tools/msi/make_zip.proj b/Tools/msi/make_zip.proj
index a0f461a..4f9986e 100644
--- a/Tools/msi/make_zip.proj
+++ b/Tools/msi/make_zip.proj
@@ -15,7 +15,6 @@
         <TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath>
         <Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments>
         <Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments>
-        <Arguments Condition="Exists('$(RAR)')">$(Arguments) --rar "$(RAR)"</Arguments>
         <Environment>set DOC_FILENAME=python$(PythonVersion).chm</Environment>
     </PropertyGroup>
 
diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py
index 368b4ec..72ec280 100644
--- a/Tools/msi/make_zip.py
+++ b/Tools/msi/make_zip.py
@@ -72,7 +72,7 @@
     ('python35.zip', 'Lib', '**/*', include_in_lib),
 ]
 
-def copy_to_layout(target, source, rel_sources):
+def copy_to_layout(target, rel_sources):
     count = 0
 
     if target.suffix.lower() == '.zip':
@@ -146,21 +146,11 @@
     try:
         for t, s, p, c in layout:
             s = source / s.replace("$arch", arch)
-            copied = copy_to_layout(
-                temp / t.rstrip('/'),
-                source,
-                rglob(s, p, c)
-            )
+            copied = copy_to_layout(temp / t.rstrip('/'), rglob(s, p, c))
             print('Copied {} files'.format(copied))
 
-        if rar and rar.is_file():
-            subprocess.check_call([
-                str(rar),
-                "a",
-                "-ed", "-ep1", "-s", "-r",
-                str(out),
-                str(temp / '*')
-            ])
+        total = copy_to_layout(out, rglob(temp, '*', None))
+        print('Wrote {} files to {}'.format(total, out))
     finally:
         if delete_temp:
             shutil.rmtree(temp, True)
diff --git a/Tools/msi/uploadrelease.proj b/Tools/msi/uploadrelease.proj
index dea3756..ec4ede5 100644
--- a/Tools/msi/uploadrelease.proj
+++ b/Tools/msi/uploadrelease.proj
@@ -23,7 +23,7 @@
         <File Include="$(OutputPath)\*.msi;$(OutputPath)\*.msu">
             <CopyTo>$(MSITarget)</CopyTo>
         </File>
-        <File Include="$(OutputPath)\*.exe">
+        <File Include="$(OutputPath)\*.exe;$(OutputPath)\*.zip">
             <CopyTo>$(EXETarget)</CopyTo>
         </File>
         <File Include="$(PySourcePath)Doc\build\htmlhelp\python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm" Condition="$(IncludeDoc)">