【问题标题】:Running an installer from within C#从 C# 中运行安装程序
【发布时间】:2011-07-28 08:36:15
【问题描述】:

我需要编写代码来下载和运行程序,例如notepad++ (npp.5.9.3.Installer.exe) 这可以在网上找到。 我使用 ProcessStartInfo 类运行它。但是,当我通常执行 notepad++ 安装程序时,它会在实际安装之前向我显示几个步骤,例如选择语言、路径等。

有没有办法以编程方式跳过这些步骤并安装软件?我希望我的问题很清楚。如果有帮助,我还附上目前只启动安装程序的方法

        private int RunFile()
        {
            ProcessStartInfo psi = new ProcessStartInfo(GetFileFullPath());
            psi.WindowStyle = ProcessWindowStyle.Hidden;
            psi.CreateNoWindow = true;

            using (Process process = Process.Start(psi))
            {
                process.WaitForExit();
                if (process.HasExited)
                    return process.ExitCode;
            }
        }

我应该传递一些参数来使它起作用吗? 提前谢谢你。

问候,

【问题讨论】:

    标签: c# processstartinfo


    【解决方案1】:

    使用npp.5.9.3.Installer.exe /S 无人值守安装notepad++,使用%ProgramFiles%\Notepad++\uninstall.exe /S 卸载。

    【讨论】:

      【解决方案2】:

      有些安装程序支持 -s 或 -silent 开关,这意味着当您通过将 -s 开关传递给安装程序来安装软件时,它将使用默认选项静默安装。尝试找出您的安装程序是否支持该功能

      【讨论】:

      • 对于也在寻找答案的人:这篇文章已被注明为答案,而 CD.. 帖子给出了实际答案。检查CD..答案。
      • 我将此帖子标记为答案,因为它提供了我需要的信息。 CD 提供了记事本++ 的特定内容,但在我的线程开始中我提到记事本只是一个示例(请注意我的问题中的例如);简而言之,我一直在寻找更一般的答案。您还提供了一般和具体的答案,但哈里斯哈桑更快:)
      【解决方案3】:

      您必须模拟用户来驱动安装。可以从 C# 应用程序向另一个窗口发送某种命令(消息)

      看看下面

      http://social.msdn.microsoft.com/forums/en-US/winforms/thread/345d85e8-cc5f-4508-b3f2-74ee43521169/

      Interact with other desktop-applications in windows using C# winforms

      【讨论】:

        【解决方案4】:

        编写良好的安装程序具有无用户界面的静默安装选项。如果安装程序是 .msi 文件,则可以将 options 传递给 msiexec 以进行静默安装。

        对于其他安装系统,有时可以选择。在没有用户参与的情况下自动安装是系统管理员的一项常见任务,因此如果您对特定安装包有疑问,我建议您在ServerFaultAppDeploy 提问。不幸的是,有许多不支持静默安装的不良安装程序。

        【讨论】:

          【解决方案5】:

          这将仅取决于安装程序 (npp.5.9.3.Installer.exe)。您必须搜索安装程序是否提供可以在命令行中使用的选项,例如silentinstall

          编辑:您可以使用 Notepad++ 的 /S(大写 S)选项来执行静默安装。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-12
            • 2016-09-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多