1

フォロワーとしてのプロジェクトのコードの部分:

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLFOLDER" Name="SetupProjectConsole" />
        </Directory>
    </Directory>
</Fragment>

<Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
  <Component Id="product" Guid="69513FD8-F65A-420F-8FE8-D456890DB457">
       <File Id="Run.bat" Name="Run.bat" Source="Resource\Run.bat"></File>
  </Component>
 </ComponentGroup>
<Property Id="QtExecDeferredExample" Value="&quot;[INSTALLFOLDER]Run.bat&quot;"/>
<CustomAction Id="QtExecDeferredExample" BinaryKey="WixCA" DllEntry="CAQuietExec"     Execute="deferred" Return="check" Impersonate="no"/>
<InstallExecuteSequence>
  <Custom Action="QtExecDeferredExample" After="InstallFiles"></Custom>
</InstallExecuteSequence>
</Fragment>

しかし、フォロワーとして表示されるインストールのログ:

CAQuietExec:  Error 0x80070002: Command failed to execute.
CAQuietExec:  Error 0x80070002: CAQuietExec Failed
CustomAction QtExecDeferredExample returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 11:57:17: InstallFinalize. Return value 3.

しかし、 を に置き換える[INSTALLFOLDER]C:\Program Files (x86)\SetupProjectConsole\、インストーラーはエラーを表示しません。この問題にどう対処すればよいですか?ありがとう!

4

2 に答える 2

3

バッチ ファイルは実行可能ファイルではありません。バッチ ファイルは、cmd.exe によって解釈されるテキスト ファイルです。QtExec カスタム アクションは実行可能ファイルのみを実行するため、インタープリターを呼び出す必要があります。

次のようなものがうまくいくはずです:

<Property Id="QtExecDeferredExample" Value="[SytemFolder]cmd.exe /k &quot;[INSTALLFOLDER]Run.bat&quot;"/>

ただし、バッチ ファイルの呼び出しは、堅牢なインストールの特徴ではありません。

于 2013-06-22T22:10:52.130 に答える
0

この方法を試してみるとどうなりますか:

<Property Id="QtExecDeferredExample" Value="&quot;[#Run.bat]&quot;"/>

?

于 2013-06-10T11:26:59.790 に答える