1

私はPythonスクリプトを使用して、wixプロジェクトのカスタムアクションで実行しています。

バイナリId="python_script" SourceFile = "myscript.py"

カスタムアクション:

CustomAction Id = "CA_python_script" BinaryKey = "python_script" Execute = "immediate" Impersonate = "yes" Return = "check" ExeCommand = "" [COMMANDPROMPT] "/ c" C:\ Python26 \ python.exe myscript.py ""

私も試しました:

CustomAction Id = "CA_python_script" BinaryKey = "python_script" Execute = "immediate" Impersonate = "yes" Return = "check" ExeCommand = "" [COMMANDPROMPT] "/ c" C:\ Python26 \ python.exe python_script ""

エラーで失敗しました:

MSI(s)(40:14)[15:18:47:204]:注:1:1721 2:CA_python_script 3:C:\ Windows \ Installer \ MSI33F9.tmp 4: "C:\ Windows \ system32 \ cmd .exe "/ c" C:\ Python26 \python.exemyscript.py"エラー1721。このWindowsインストーラパッケージに問題があります。このインストールを完了するために必要なプログラムを実行できませんでした。サポート担当者またはパッケージベンダーに連絡してください。アクション:CA_python_script、場所:C:\ Windows \ Installer \ MSI33F9.tmp、コマンド: "C:\ Windows \ system32 \ cmd.exe" / c "C:\ Python26 \ python.exe myscript.py" MSI(s) (40:14)[15:18:51:782]:製品:MYソフトウェア-エラー1721。このWindowsインストーラーパッケージに問題があります。このインストールを完了するために必要なプログラムを実行できませんでした。サポート担当者またはパッケージベンダーに連絡してください。アクション:backup_Registry_Cmd、場所:C:

アクションは15:18:51に終了しました:backup_Registry_Cmd。戻り値3。

これの問題は何ですか?

4

3 に答える 3

1

私はスレッドにかなり遅れて来たことを知っていますが、私はそれに出くわし、そうする他の人のために答えるだろうと考えました.

根本的な問題は、ユーザーに依存できないことです。

  1. Python がインストールされていること
  2. Python の正しいバージョンがインストールされていること
  3. python がインストールされている場合の場所
  4. 正しいパッケージ/ライブラリがインストールされている

また、実行可能ファイルは Python からのみ実行できます。最も簡単な方法は、Python スクリプトEXE にコンパイルすることです。

py2exepyInstaller、または最高のcx_Freezeなどのツールを使用して、Python スクリプトを .EXE ファイルに「コンパイル」し、WiX プロジェクトに含めて実行することができます。

これの良いところは、これらのツールが正しい python バイナリに対して python スクリプトが実行されることを確認し、必要なすべての依存関係を持ってきて .EXE ファイルに埋め込むことです。

警告の言葉: これらのソリューションは鉄壁ではなく、非常に汎用性がありますが、問題が発生する可能性があるため、目的に合わない可能性があります。

于 2013-05-14T23:38:17.967 に答える
0

Binary テーブルのカスタム アクションは、DLL または EXE のいずれかです。ファイルを抽出して別の .exe に渡すことはサポートされていません。

于 2012-07-27T14:52:20.663 に答える