Process.Start() 会导致"拒绝访问"异常,尽管"每个人"组仍具有完



我的项目输出包含一个名为key_gen.exe的可执行文件,我正在尝试运行它。可执行文件不是由项目构建的,而是在事后复制的。使用下面的代码,我收到访问被拒绝异常。

string key_gen_dir = Environment.CurrentDirectory.Substring(0, Environment.CurrentDirectory.LastIndexOf("\")) + @"Scriptskey_gen";
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = key_gen_dir + "key_gen.exe";
startInfo.Arguments = String.Format(". {0}", password);
process.StartInfo = startInfo;
process.Start();

文件名值正确,在命令提示符下测试时有效。我不想以管理员身份运行该程序。我尝试启用UseShellExecute,但我收到一个PlatformNotSupportedException。key_gen_dir以及所有子文件和文件夹对"所有人"组具有"完全控制"权限。如果相关,我的项目面向 .NET 标准 2.0。

我能够通过在Windows中编辑文件属性并将"所有应用程序包"组添加到允许读取和执行的文件权限来解决访问被拒绝错误。

最新更新