我有一个msi安装程序,需要调用几个批处理文件才能完成安装过程。批处理文件将额外文件从安装程序复制到几个目录,然后修改其中几个目录的权限。我们希望继续使用批处理文件,因为我们的开发计划中没有剩余时间。我没有使用WIX。
如果可能的话,我想捕获批处理的输出并将其写入日志文件。
发现下面是我用来尝试从自定义操作运行批处理文件的代码。它打开一个cmd窗口,运行一段时间但似乎永远不会完成。如果我直接从命令提示符运行相同的批处理文件,它们就可以工作。
//Set the environment to the directory containing the bat files
ProcessStartInfo info = new ProcessStartInfo(batch);
info.WindowStyle = ProcessWindowStyle.Hidden;
info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
if (!string.IsNullOrEmpty(argument))
info.Arguments = argument;
Process process = new Process();
process.StartInfo = info;
process.Start();
// Capture the standard error and standard output
我做错了什么?
答案 0 :(得分:2)
我相信你需要创建一个自定义动作。请参阅this question。
答案 1 :(得分:0)
许多防病毒程序可能会在安装过程中停止执行.BAT文件,您应该使用标准Windows Installer功能或作为C ++自定义操作来实现此目的