Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file Wix:CustomAction立即或延迟操作失败_Batch File_Cmd_Wix - Fatal编程技术网

Batch file Wix:CustomAction立即或延迟操作失败

Batch file Wix:CustomAction立即或延迟操作失败,batch-file,cmd,wix,Batch File,Cmd,Wix,环境:Windows 7 x64,Wix工具集3.10 你好 我无法通过自定义操作通过执行属性“立即”或“延迟”以任何方式调用cmd.exe 运行时错误总是发生。 我可以通过自定义操作调用vbs命令,但无法启动.bat文件 怎么了?我想输入和输出的路径可能不一致,但我找不到。 如果我能用英语输出日志文件,请教我。。。。 在延迟操作中,log InstallInitialize、InstallFinalize可能会建议我对Orca做些什么,但我不确定应该做什么 以下是我尝试的细节: 遵循中建议的样

环境:Windows 7 x64,Wix工具集3.10
你好
我无法通过自定义操作通过执行属性“立即”或“延迟”以任何方式调用cmd.exe
运行时错误总是发生。 我可以通过自定义操作调用vbs命令,但无法启动.bat文件

怎么了?我想输入和输出的路径可能不一致,但我找不到。
如果我能用英语输出日志文件,请教我。。。。 在延迟操作中,log InstallInitialize、InstallFinalize可能会建议我对Orca做些什么,但我不确定应该做什么

以下是我尝试的细节:

遵循中建议的样本 我对cmd.exe属性的定义如下:


下面是我对批处理文件目录的定义:


我对发布事件DoAction的定义如下:


1.
test.bat内容如下(hoge.txt和temp\hoge文件夹都存在)

复制/Y C:\temp\hoge\hoge.txt C:\temp\hoge\hoge%日期:~-10,4%%日期:~-5,2%%日期:~-2,2%.txt 它只是将hoge.txt复制到一个hoge{%date%,而不使用斜杠}.txt

我尝试了Execute=“deferred”,但按下next按钮时会发生运行时错误


它的日志文件(很抱歉有日语字符…(msiexec/I Main.msi/lv*Main-install.log结果:)错误2762,但返回代码是3

アクション開始 11:04:22:CallCmdTest MSI(c)(08:C0)[11:04:22:176]:注:1:2762 调试:错误2762:无法计划操作。操作必须在InstallInitialize和InstallFinalize之间安排。 このパッケージをインストールしているときに、インストーラーに予期しないエラーが発生しました。このパッケージに問題がある可能性があります。エラー コードは、2762です。引数: 、、 MSI(c)(08:C0)[12:03:24:486]:製品: 霍吉1.12.0--このパッケージをインストールしているときに、インストーラーに予期しないエラーが発生しました。このパッケージに問題がある可能性があります。エ ラー コードは、2762です。引数: 、、 アクション終了 12:03:24:CallCmdTest戻り値 3. 我尝试了Execute=“immediate”,但按下“下一步”按钮时会发生运行时错误:


它的日志文件(很抱歉有日语字符…(msiexec/I Main.msi/lv*Main-install.log结果:)错误2762,但返回代码为3

アクション開始 17:13:23:CallCmdTest MSI(c)(B8:C4)[17:13:24:034]:注意:1:1722:CallCmdTest 3:c:\Windows\SysWOW64\cmd.exe 4:/c“c:\Program Files(x86)\HogeHoge\Hoge 1.0\test.bat” エラー 1722。この 窗户インストーラー パッケージに問題があります。セットアップの一部として実行されるプログラムが正常に完了しませんでした。サポート担当者またはパッケージ開発元に問い合わせてください。アクション CallCmdTest、場所: C:\Windows\SysWOW64\cmd.exe、コマンド: /c“c:\ProgramFiles(x86)\HogeHoge\Hoge 1.0\test.bat” MSI(c)(B8:C4)[17:13:25:694]:製品: 霍吉1.12.0--エラー 1722。この 窗户インストーラー パッケージに問題があります。セットアップの一部として実行されるプログラムが正常に完了しませんでした。サポート担当者またはパッケージ開発元に問い合わせてください。アクション CallCmdTest、場所: C:\Windows\SysWOW64\cmd.exe、コマンド: /c“c:\ProgramFiles(x86)\HogeHoge\Hoge 1.0\test.bat” アクション終了 17:13:25:CallCmdTest戻り値 3. 调试:错误2896:执行操作CallCmdTest失败。 このパッケージをインストールしているときに、インストーラーに予期しないエラーが発生しました。このパッケージに問題がある可能性がありま す。エラー コードは、2896です。引数: CallCmdTest、 アクション終了 17:13:25:欢迎光临戻り値 3. MSI(c)(B8:B8)[17:13:25:716]:执行操作:致命错误 アクション 17:13:25:致命的错误 所有文件(Main.wxs、Main.wixobj、Main.msi、test.bat)都存在于一个文件夹中。 candle、light、msiexec的所有命令都在同一目录中执行

cd /d %~dp0

candle.exe Main.wxs
light.exe -cultures:ja-jp -ext WixUIExtension -out Main.msi Main.wixobj
msiexec /i Main.msi /lv* Main-install.log

正如Gerhard Barnard所言,使用自定义操作可能是正确的方法。看起来您正试图从用户界面触发自定义操作

  • 不能延迟,因为它正在从UI发生
  • 除非整个安装程序以提升方式启动,否则不能具有提升
  • 如果您尚未实际安装产品,将无法访问bat文件
<>我将把你的BAT文件改写为C或C++自定义动作,并在安装程序中按照格哈德评论中的链接和其他问题的方式包含它。 此外,从UI事件启动的自定义操作无法轻松地将日志写入msi日志(或者根本无法写入)。如果您适当地安排您的自定义操作,您将能够对您的自定义操作进行信息性日志记录。如有必要,还可以调试自定义操作。过去,我在自定义操作开始时显示了一个消息框,然后附加了一个调试器进行调试。

我将尝试使用Quiet Exec示例:但我现在还不准备使用“静默模式”进行任何操作。上面的示例()在我的环境中运行良好,但其批处理文件路径为