.NET Core Blazor WebAssembly 中的本机错误

Native error in .NET Core Blazor WebAssembly

我的任务是 运行 CLI 命令(在客户端系统中)并在 Web 应用程序上向用户显示输出。 [假设,基于网络的 cmd.exe]

基于对 WebAssembly 功能的阅读,我使用 .NET CORE Blazor WebAssembly 来完成任务。但是在Client中使用System.Diagnostics.ProcessStartInfo会抛出运行time error Native error= Cannot find the specified file.

如果我对 WebAssembly 的理解有误,请告诉我。另外,建议我如何完成任务?

Razor 页面中使用的代码:

protected override async Task OnInitializedAsync()
{
    quiz = await Http.GetJsonAsync<List<QuizItem>>("Quiz");

    // My actual code...
    string process = @"C:\Windows\System32\cmd.exe", arguments = "start", workingFolder = ".";
    System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo {
        FileName = process, Arguments = arguments, WorkingDirectory = workingFolder,
        CreateNoWindow = false, UseShellExecute = false,
        RedirectStandardError = true, RedirectStandardOutput = true,
    };
    System.Diagnostics.Process proc = System.Diagnostics.Process.Start (startinfo);
    if (proc == null) throw new Exception ($"Unable to execute '{process}'");
}

控制台日志供参考:

blazor 的权限受到浏览器 javascript 沙盒的限制,因此您不能做任何您在 javascript 中也不能做的事情。启动进程就是其中之一。

首先,Blazor WebAssembly 应用程序不是 .NET CORE 应用程序。

您不能在范围和限制方面与 JavaScript 大致相同的 Blazor WebAssembly 应用程序中执行 CLI 命令。 Blazor WebAssembly 应用程序是单线程的,并在 JavaScript 的相同沙箱中运行。在 JavaScript 中,您无法访问用户的文件系统,这意味着您将无法使用 WebAssembly 应用程序执行此操作。

我不确定我明白你的意思。如果要显示从服务器取回的数据,为什么不能在输入框列表框等Html元素中显示呢?