.NET Core 2.0 - 无法访问 ProcessStartInfo.Verb

.NET Core 2.0 - Can't access ProcessStartInfo.Verb

我一直在使用 .NET Core 2.0,在尝试使用 UAC 提示启动应用程序时遇到了一个问题。

为此,我通常会将 ProcessStartInfo 的动词 属性 设置为 'runas',但是 属性 显然未定义。

我发现了这个问题: Launch process that needs to trigger UAC in netcore

在评论中,我发现 .NET Core 2.0 旨在同时包含 Verb 和 Verb,并且文档中也包含它们。

https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.processstartinfo.verbs?view=netcore-2.0

我的 Visual Studio 是不是设置有误?或者这些实际上仍然不受支持?

值得注意的是,我的 'Target framework' 确实设置为“.NET Core 2.0”。

根据要求,这是我的方法:

public static bool CheckOrRequestAdmin(string command)
{
    if (IsRunAsAdmin())
    {
        return true;
    }

    ProcessStartInfo proc = new ProcessStartInfo();
    proc.UseShellExecute = true;
    proc.WorkingDirectory = Assembly.GetEntryAssembly().Location;
    proc.FileName = Assembly.GetEntryAssembly().Location;
    proc.Verb = "runas";
    proc.Arguments = command;

    try
    {
        Process.Start(proc, );
    }
    catch
    {
        // The user refused the elevation.
        // Do nothing and return directly ...
        return false;
    }

    Environment.Exit(0);
    return true;
}

经典!一问才找到

虽然我已经设置了 Target 框架,但我需要更新 .NET Core App 的 Nuget 包,它仍然停留在旧版本上。

更新后,完全按照预期工作。