7zip自解压安装程序在安装完成之前擦除文件



我们制作了一个新的安装程序,它可以很好地使用Visual Studio和WIX。现在我正试着把它压缩并制作一个自解压安装程序来分发。

我可以很好地创建installer.exe,它可以运行。安装程序启动,但失败。

我认为这是因为7zip exe在安装程序有机会使用它们之前删除了文件(我们正在运行setup.exe来启动安装程序)。

我找遍了,但找不到任何关于如何使这个工作的提示。我是不是错过了7zip的选项?

创建行

7z a myInstaller.7z installer/bin/release/*
copy /b program files7-zip7zsd.sfx config.txt myInstaller.exe

Config.txt是

;!@Install@!UTF-8!
Title="My Title"
RunProgram="Setup.exe"
;!@InstallEnd@!

有一个解决方案http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686(约7/8菲利斯下降),但这似乎吱吱作响。这真的是唯一可行的办法吗?

我看不出你的样品有什么问题。然而,这是我用来构建7z自解压缩存档的方法,它工作得很好,只有在安装结束后才会删除文件。

配置文件:

;!@Install@!UTF-8!
Title="My Installer"
InstallPath="%temp%\Temp_Installation"
RunProgram="setup.exe"
Delete="%temp%\Temp_Installation"
;!@InstallEnd@!

创建脚本(NAnt):

<exec program="${_7z.exe}" workingdir="${path}SFX">
  <arg line="a -y -r ${path}setup.7z" />
  <arg line="${paths.build.to7z}*.*"/>
</exec>
<exec program="cmd.exe" verbose="true" workingdir="${path}SFX">
  <arg value="/C" />
  <arg line="copy /b 7ZSD_All.sfx + ${config} + ${path}setup.7z" />
  <arg file="${paths.build.sfx}setup.exe"/>
</exec>

希望这能帮助你找到问题的根源。您还可以检查是否使用了最新版本的7z SFX模块。

适用于我,当我省略Delete:

;!@Install@!UTF-8!
Title="My Installer"
InstallPath="%temp%\Temp_Installation"
RunProgram="setup.exe"
;!@InstallEnd@!

最新更新