我可以调用 Process.Start(filename.sln) 并使用该解决方案启动 VisualStudio。
但是使用带有 Verb="runas" 的 ProcessStartInfo 这样做,我得到了一个例外。即使使用 UseShellExecute=true。
有没有办法启动以管理员身份运行的应用程序,我将应用程序的数据文件传递给它并且没有 application.exe 文件名?
找到了答案——当你以管理员身份运行时,你只能给它可执行文件,而不是让程序运行的应用程序。所以你必须通过 devenv.exe,而不是 filename.sln
ProcessStartInfo processInfo = new ProcessStartInfo(); //new process class
processInfo.Verb = "runas"; //wanna admin rights
processInfo.FileName = sDevPath + "devenv.exe"; //exe file path
processInfo.Arguments = sPrjPath + "mConverter.sln"; //sln file as argument
try
{
Process.Start(processInfo); //try to start
}
catch (Win32Exception)
{
//oops
}