C# 如何在WPF C中静默安装外部NSIS exe#

C# 如何在WPF C中静默安装外部NSIS exe#,c#,.net,wpf,nsis,silent-installer,C#,.net,Wpf,Nsis,Silent Installer,正如标题所说,我正试图通过我用WPF C#编写的应用程序以静默方式安装.exe(例如,inkscape)。问题是,我使用的安装过程总是返回异常并失败 以下是我使用的代码: public static bool StartInstall(string pathtofile) { try { Process process = new Process(); process.StartInfo.FileNa

正如标题所说,我正试图通过我用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打包的前男友的静默安装切换为/S。不过,我不确定我是否在语法上做错了什么

我使用的代码来自stackoverflow post。它确实适用于.msi包。也许这对NSIS的前任不起作用

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


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

在csharpfolk的帮助下,我已经解决了这个问题

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

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


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

一些安装程序需要管理员权限,也许您应该使用
UseShellExecute=true
Verb=“runas”
运行安装程序。检查线程。你的管理员权限部分确实是正确的!谢谢