3

WiX で MSI ファイルから EXE ファイルを実行しようとしましたが、InitializeSetup を実行すると 1603 エラーが発生しました。

Action ended 12:09:54: InstallValidate. Return value 1.
Action start 12:09:54: InstallInitialize.
Action ended 12:09:54: InstallInitialize. Return value 3.
Action ended 12:09:54: INSTALL. Return value 3.

この WiX スクリプトの何が問題になっていますか?

 <Product Name='something' Id='11934d63-12d1-4792-829e-046de3bb987e'
  UpgradeCode='{a101616a-365c-44a7-bfcb-fafb356c2ea1}'
  Language='1033' Version='8.3.4' Manufacturer='something2'>

    <Package Id='*' InstallerVersion='200' Compressed='yes' />

    <Binary Id="Instalator.exe" SourceFile="d:\Instalator.exe"/>
    <CustomAction Id="LaunchFile" BinaryKey="Instalator.exe" ExeCommand="" Execute='deferred' Return='asyncNoWait' Impersonate='no'/>
    <InstallExecuteSequence>
        <Custom Action='LaunchFile' Before='InstallFinalize'/>
    </InstallExecuteSequence>
 </Product>

理由はわかりませんが、追加すると:

<Directory Id='TARGETDIR' Name='SourceDir'>
        <Component Id='MainExecutable' Guid='1193cd63-12d1-4792-829e-046de3bb987e'>
        </Component>
</Directory>

<Feature Id='Complete' Level='1'>
  <ComponentRef Id='MainExecutable' />
</Feature>

Package ノードの後 -> 正常に動作します。理由を突き止める必要があります...

4

3 に答える 3

5

あなたがここで何をしているのかについて他にも懸念がありますが、インストールを完了するためにプロセスから EXE に移動する必要がある場合は、Quiet Execution Custom Actionを使用することをお勧めします。

ただし、これは多くの理由で適切な方法ではないことを知っておく必要があります。1) 宣言的ではない、2) ロールバックをサポートしていない。他にもありますが、それらは最大の IMO です。

ところで、WiX は「スクリプト」ではありません。それを理解すれば、EXE を呼び出さない理由が理解できます。

于 2012-06-25T15:41:16.990 に答える
0

exeを遅延アクションとして実行しているため、SYSTEMアカウントのコンテキストで実行されます。このエラーは、システムアカウントにファイルシステムhttp://support.microsoft.com/kb/834484で必要なアクセス許可がないことが原因です。

PowerShellを使用してこれを回避し、-RunAsスイッチを使用してexeを実行することは可能ですが、これは少し厄介です。それは本当にすべて、最善の行動方針に関して、exeファイルで何をしているかに正確に依存します。私はペインターさんと一緒です。EXEを使用することが最後の手段になるはずです。

もう1つのオプションは、ユーザーがアプリを初めて実行したときに実行されるようにexeセットアップコードを移動することです。

于 2012-06-25T16:38:34.397 に答える
0

WIXに関する重要な注意事項。すべてのアプリケーションのインストールが完了すると、.sql ファイルまたはデータベース ファイルがwixまたはwpfまたはwinformアプリケーションを介して実行されます。

于 2018-03-27T10:59:27.657 に答える