C# 如何在WPF C中静默安装外部NSIS exe#
正如标题所说,我正试图通过我用WPF C#编写的应用程序以静默方式安装.exe(例如,inkscape)。问题是,我使用的安装过程总是返回异常并失败 以下是我使用的代码: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
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”
运行安装程序。检查线程。你的管理员权限部分确实是正确的!谢谢