我编写了一个运行批处理脚本的控制台应用程序deploy.exe。
Process p1 = new Process();
p1.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + "installer.bat";
p1.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p1.Start();
p1.WaitForExit();
p1.Close();
installer.bat包含以下命令。 \ shared1 \列表\ list1.cmd
如果我自己运行可执行文件,它会成功运行。
但是我需要它在Windows安装程序项目中运行。所以我做了一个安装和部署项目,并在安装时成功添加了deploy.exe作为自定义操作。
它运行正常,但当它开始执行命令时,我收到此错误 “文件名,目录名称或卷标语法不正确”。 有什么帮助吗?
答案 0 :(得分:1)
错误似乎在正在执行的脚本中。它包含环境变量%kind%,由于某种原因安装程序无法接受。因此,它在安装程序外部正常工作,并且在安装程序调用它时不正确。
答案 1 :(得分:0)
只是在这里猜测,但也许BaseDirectory没有尾随反斜杠。尝试:
System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "installer.bat");
代替。
答案 2 :(得分:0)
尝试打印出AppDomain.CurrentDomain.BaseDirectory
的值。在安装它时,它可能不在installer.bat
的位置。
另外,您尝试将bat文件添加到自定义操作(如果可能的话)?
并且,是否可以将蝙蝠中的内容移动到exe?
答案 3 :(得分:0)
批处理文件中存在问题吗?
检查一下:
\\shared1\\lists\\list1.cmd
应该是
\\shared1\lists\list1.cmd
请注意原始命令中的额外\字符。这会导致批处理文件出错。