3

我们使用 Visual Studio 和 WIX 制作了一个运行良好的新安装程序。现在我正在尝试将其压缩并制作一个自解压安装程序以进行分发。

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

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

我已经搜索了所有内容,但找不到任何有关如何完成这项工作的提示。我错过了 7zip 的选项吗?

创作线:

7z a myInstaller.7z installer/bin/release/*
copy /b \program files\7-zip\7zsd.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上有一个解决方法(Phylliss 下降了大约 7/8),但这似乎有点古怪. 这真的是完成这项工作的唯一方法吗?

4

2 回答 2

2

我无法通过您的样品立即判断它有什么问题。但是,这是我用来构建 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 模块。

于 2011-12-01T07:11:09.370 回答
0

对我有用,当我省略删除时:

;!@Install@!UTF-8!
Title="My Installer"
InstallPath="%temp%\\Temp_Installation"
RunProgram="setup.exe"
;!@InstallEnd@!
于 2016-07-13T14:54:02.677 回答