-1

我在 UWP 中使用 WinUI 开始了一个新项目。我认为使用 Process.Start 启动进程不起作用或由于安全原因不受支持,但是当我启动以下代码片段时,它以某种方式开始工作。

现在的问题是,它为什么会起作用,或者是否有任何限制,例如我无法将项目中包含的 .exe 部署到 Microsoft Store?

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
    }

    private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        Process.Start(@"Tools\example.exe", "--help");
    }
}

项目中包含的可执行文件(Build Action = NoneCopy to Output Directory = Copy if newer):

在此处输入图像描述

4

2 回答 2

1

但是当我开始下面的代码片段时,它开始以某种方式工作。

我用你的代码测试过,它抛出异常The system cannot find the file specified,它在我这边不起作用。您能否介意分享一个示例来解释这一点。

为什么它会起作用,或者是否有任何限制,例如我无法将项目中包含的 .exe 部署到 Microsoft Store?

一般来说,我们经常使用FullTrustProcessLauncher从 uwp 启动 win32 应用程序。但是您需要为包项目启用 runFullTrust Restricted 功能。受限功能适用于非常特定的场景。这些功能的使用受到高度限制,并受其他商店入职政策和审查的约束。请注意,您可以旁加载声明受限功能的应用程序,而无需获得任何批准。仅在将这些应用程序提交到商店时才需要批准。

于 2021-07-06T02:11:40.073 回答
0

您可以在 Windows 10 及更高版本的 Fall Creators Update 上.exe使用 .NET 中的 API 运行包中包含的程序。Process.Start

在 Visual Studio 中的 Project->Properties->Application 下检查Min Version应用程序的目标。它应该设置为Windows 10 Fall Creators Update (10.0; Build 16299)或更新的版本。

只要外部组件 ( example.exe) 单独认证或符合 Windows 应用认证工具包,您就应该能够将应用发布到应用商店。

于 2021-07-07T15:00:01.567 回答