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 に答える