командная строка gpg в c #, скомпилированная как сервис, не работает

#c# #gnupg

#c# #gnupg

Вопрос:

Кодирование выполняется на C # с использованием Visual Studio 2019.Если я заменю scommandline командой копирования, весь процесс works…so y не работает ли команда gpg?.Если я вставлю ее в командную строку, она сработает. Надеюсь, sm1 может помочь

 System.Diagnostics.ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe")
{
    CreateNoWindow = true,
    UseShellExecute = false,
    RedirectStandardInput = true,
    RedirectStandardOutput = true,
    RedirectStandardError = true
};
System.Diagnostics.Process process = Process.Start(startInfo);

string sCommandLine = @"gpg --batch --pinentry-mode loopback --passphrase ******************** -- 
  output D:extract_CES_SAE_v3_p0002031crfc_20201008205801.txt --decrypt 
    D:extract_CES_SAE_v3_p0002031crfc_20201008205801.txt.pgp" ;

try
{
     process.StandardInput.WriteLine(sCommandLine);
     process.StandardInput.Flush();
     process.StandardInput.Close();
     process.WaitForExit();
     process.Close();
}
  

Комментарии:

1. Какой результат вы получаете при выполнении кода? Кроме того, каково содержимое в StandardError , есть ли у вас там какие-либо выходные данные?

2. Ошибок нет…. когда я создаю проект как приложение Windows и выполняю… все работает нормально…

3. Значит, вы не получаете никаких выходных данных ни от StandardOutput , ни StandardError от?

4. Nope…so сначала я проверил, если cmd.exe works…so отправил простую копию файла в качестве запроса, и это работает.

5. Поскольку у вас есть try блок, что вы делаете в catch блоке? Получаете ли вы какие-либо исключения, и если да, то какое сообщение об исключении?