【发布时间】:2016-11-21 13:08:25
【问题描述】:
我正在开发 NSIS 安装程序(Windows 窗体应用程序)。
应用程序的主要思想 - 用户通过 Windows 窗体应用程序,配置所有需要的设置,当他/她点击“完成”时,会自动生成一个 .nsis 文件。 makeNSIS.exe 也包含在我的应用程序中,因此用户无需安装它即可使用我的安装程序。
我的目标是默默地生成一个 setup.exe 文件。我想将我自动生成的 .nsi 文件作为参数传递给每个 cmd 的 makeNSIS.exe,告诉它执行它并在某个路径创建一个 setup.exe 文件。我希望整个事情都安静地完成。
我失败的试验之一:
ProcessStartInfo psi = new ProcessStartInfo();
//my automatically generated nsis file
psi.Arguments = Application.StartupPath + "\\NSIS\\NSIS SG Project\\NSIS\\My application.nsi";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
//nsis application that is included in my project so that users wouldn't have to install it
psi.FileName = Application.StartupPath + "\\NSIS\\makeNSIS.exe";
Process.Start(psi);
我做错了什么?
【问题讨论】:
-
如果不隐藏窗口,输出是否有错误?进程退出代码?
-
它说它是成功的,但我在任何地方都没有看到生成的 exe 文件。即使我直接在cmd中输入“makensis.exe mynsisfile.nsi”,一切都执行成功,但是看不到任何exe文件。会是什么?
-
.nsi 中的“OutFile”指令设置生成的安装程序的名称(和可选路径)。
-
它没有生成。也许是因为我没有启动 .nsi 文件,只是编译它?如何编译并开始使用命令行?在谷歌上找不到。