.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,并且文档中也包含它们。
我的 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 包,它仍然停留在旧版本上。
更新后,完全按照预期工作。
我一直在使用 .NET Core 2.0,在尝试使用 UAC 提示启动应用程序时遇到了一个问题。
为此,我通常会将 ProcessStartInfo 的动词 属性 设置为 'runas',但是 属性 显然未定义。
我发现了这个问题: Launch process that needs to trigger UAC in netcore
在评论中,我发现 .NET Core 2.0 旨在同时包含 Verb 和 Verb,并且文档中也包含它们。
我的 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 包,它仍然停留在旧版本上。
更新后,完全按照预期工作。