从 UWP 应用程序运行进程时出现“访问被拒绝”错误

问题:在我的以下案例中,如何使用UWP 应用程序的allowElevation功能在安装了 1809 更新的 Windows 10 桌面上以提升的权限执行代码。Stefan Wick 的这篇好文章解释了从 UWP 应用程序到 WPF 应用程序的这种功能的类似用法,但在我的例子中,我使用的是类库而不是 exe。

详细信息:在我的 VS2019 UWP 项目中,我添加了.NET Standard Class Library 项目。我的一个 UWP 方法是调用我的类库项目的以下方法。但由于 UWP 的沙盒性质——正如预期的那样——该应用程序在代码Access denied行抛出错误。Process.Start()

public void Process_Start_Test()

{

   using (Process myProcess = new Process())

   {

       myProcess.StartInfo.UseShellExecute = false;

       myProcess.StartInfo.FileName = @"C:\DotNET2019\UWP\TestFolder\MyExeApp.exe";

       myProcess.StartInfo.CreateNoWindow = true;

       myProcess.Start(); //Access denied error here

   }

}


蛊毒传说
浏览 156回答 1
1回答

四季花海

不能Process.Start从沙盒 UWP 应用引用的 .NET Standard 库调用。您需要创建一个实际的提升进程( .exe),Process.Start正如 Stefan 的博客文章所解释的那样调用。完全信任.exe当然可以在Process_Start_Test()定义 的地方引用您的类库,但是无论是否在库中定义该方法,都必须从完全信任过程中调用。
打开App,查看更多内容
随时随地看视频慕课网APP