私は簡単なバッチファイルを持っています:
cd <path to my git repository>
git pull
次のC#関数で実行しようとしています。
private NuGetBO.ShellCommandReturn ExecuteCommand(string path)
{
ProcessStartInfo processInfo;
Process process;
processInfo = new ProcessStartInfo(path);
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
// *** Redirect the output ***
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
process = Process.Start(processInfo);
process.WaitForExit(5000);
// *** Read the streams ***
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
int exitCode = process.ExitCode;
process.Close();
return new NuGetBO.ShellCommandReturn { Error = error, ExitCode = exitCode, Output = output };
}
しかし、次のエラーが発生します。
"Access is denied.\r\nfatal: Not a git repository (or any of the parent directories): .git\n"
つまり、C#からバッチファイルを何時間も成功せずに実行しようとしましたが、コマンドラインで実行すればバッチファイルは問題なく機能します。
C#関数を機能させるにはどうすればよいですか?バッチファイルまたはC#関数で何を変更する必要がありますか?ありがとう
編集:
バッチファイルの内容を次のように変更しました。
cd <path to my git repository> && git pull
しかし、次のエラーが発生します。
Access is denied.
EDIT2:
フォルダへのアクセスを追加しましたが、新しいエラーが発生します。
fatal: Not a git repository: "../.git/modules/myProject\n"
EDIT3:
EDIT2に記載されているフォルダへのアクセス権を付与しましたが、次のエラーが発生します。
"error: unable to create directory for C:/myFolder/.git/modules/myProject/ORIG_HEAD\nfatal: Cannot lock the ref 'ORIG_HEAD'.\n"