在没有管理员权限的情况下使用 C# 中的 Git-bash
Use Git-bash from C# without Admin permissions
我试图使用以下代码从 C# 文件启动 python 虚拟环境和 运行 一个 python 文件。
public static void ExecuteGitBashCommand(string fileName, string command, string workingDir)
{
ProcessStartInfo processStartInfo = new ProcessStartInfo(fileName, "-c \" " + command + " \"")
{
WorkingDirectory = workingDir,
RedirectStandardOutput = true,
RedirectStandardError = true,
RedirectStandardInput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = Process.Start(processStartInfo);
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
var exitCode = process.ExitCode;
process.Close();
}
在 运行ning 时,我收到一条错误消息“System.ComponentModel.Win32Exception: 'Access is denied.'”
环顾四周,我看到的建议是 运行 作为管理员,但这不是一个选项。有没有办法做到这一点?用户 运行ning 代码具有 运行 git-bash.
的权限
编辑 1:
我开始考虑使用 .BAT 文件,但要做到这一点,我需要使用一个 bat 第二个 bat 文件来激活虚拟环境,这导致它无法 运行 bat 文件的第二部分.无论如何让它在同一个命令提示符下执行这两个命令将解决问题。
我使用一个 bat 文件解决了这个问题,该文件不需要对 C# 代码的 运行 的管理员权限。并使用 call 命令从一个批处理文件中执行另一个批处理文件。我还使用了另一个 SO post 在批处理文件中使用相对路径文件。
relative path in BAT script
我试图使用以下代码从 C# 文件启动 python 虚拟环境和 运行 一个 python 文件。
public static void ExecuteGitBashCommand(string fileName, string command, string workingDir)
{
ProcessStartInfo processStartInfo = new ProcessStartInfo(fileName, "-c \" " + command + " \"")
{
WorkingDirectory = workingDir,
RedirectStandardOutput = true,
RedirectStandardError = true,
RedirectStandardInput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = Process.Start(processStartInfo);
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
var exitCode = process.ExitCode;
process.Close();
}
在 运行ning 时,我收到一条错误消息“System.ComponentModel.Win32Exception: 'Access is denied.'” 环顾四周,我看到的建议是 运行 作为管理员,但这不是一个选项。有没有办法做到这一点?用户 运行ning 代码具有 运行 git-bash.
的权限编辑 1:
我开始考虑使用 .BAT 文件,但要做到这一点,我需要使用一个 bat 第二个 bat 文件来激活虚拟环境,这导致它无法 运行 bat 文件的第二部分.无论如何让它在同一个命令提示符下执行这两个命令将解决问题。
我使用一个 bat 文件解决了这个问题,该文件不需要对 C# 代码的 运行 的管理员权限。并使用 call 命令从一个批处理文件中执行另一个批处理文件。我还使用了另一个 SO post 在批处理文件中使用相对路径文件。
relative path in BAT script