问题:在以下情况下,如何使用 UWP 应用中的 allowElevation 功能在具有 1809 更新的 Windows 10 桌面上以提升的权限执行代码。Stefan Wick 的这篇好文章解释了从 UWP 应用到 WPF 应用的类似功能用法,但就我而言,我使用的是类库而不是 exe。
详细信息:在VS2019的UWP项目中,我添加了.NET标准类库项目。我的一个 UWP 方法是调用我的类库项目的以下方法。但由于 UWP 的沙盒性质 - 正如预期的那样 - 应用在代码的第 Process.Start()
行引发Access denied
错误。
public void Process_Start_Test()
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = @"C:DotNET2019UWPTestFolderMyExeApp.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start(); //Access denied error here
}
}
>不能从沙盒 UWP 应用引用的 .NET 标准库中调用Process.Start
。
你需要创建一个实际的提升进程(.exe
(,调用Process.Start
,正如Stefan的博客文章所解释的那样。
完全信任.exe
当然可以引用定义Process_Start_Test()
的类库,但无论该方法是否在库中定义,都必须从完全信任进程中调用该方法。