1

正如标题所说,我正试图通过我用 WPF C# 编写的应用程序静默安装 .exe (例如,inkscape)。问题是,我使用的安装过程总是返回异常并失败。

这是我使用的代码:

    public static bool StartInstall(string pathtofile)
    {
        try
        {
            Process process = new Process();
            process.StartInfo.FileName = "Temp.exe";
            process.StartInfo.Arguments = string.Format(" /S", pathtofile);
            process.Start();
            process.WaitForExit();
            Console.WriteLine("Silent Install was successful.");
            return true;
        }
        catch
        {
            MessageBox.Show("Error!");
            return false;
        }
    }

根据这个网站,NSIS 打包 exe 的静默安装开关是 /S。不过,我不确定我是否在语法上做错了什么。

我使用的代码来自这个stackoverflow 帖子。它适用于 .msi 包。也许它不适用于 NSIS exe?

我对为什么它不起作用一无所知。上面的代码将在“process.Start()”行崩溃,很可能是因为未知命令或其他原因。

如果有人能解释一下如何为 NSIS 安装程序启动该过程,我将不胜感激。

4

1 回答 1

0

我在 csharpfolk 的帮助下解决了这个问题。

我的问题是两种不同原因的组合:

首先,运行应用程序确实需要管理员权限。

其次,“process.StartInfo.Filename”行需要文件的完整路径。一旦我将其更改为“C:\Downloads\Temp.exe”,它就起作用了。

于 2013-09-22T15:13:10.553 回答