Запустите команду sw-precache из С#

Я хочу сгенерировать "service-worker.js", используя sw-precache

из командной строки (cmd.exe) я запускаю эту команду и вывожу:

Общий размер предварительного кэша составляет около 145 КБ для 35 ресурсов. service-worker.js был сгенерирован с содержимым сервисного работника.

Когда я запускаю эту команду из C#, вывод пустой, вот мой код:

Process proc = new Process
                    {
                        StartInfo = new ProcessStartInfo
                        {
                            FileName = @"cmd.exe",
                            Arguments = @"/c sw-precache",
                            UseShellExecute = false,
                            RedirectStandardOutput = true,
                            RedirectStandardError = true,
                            CreateNoWindow = true,
                            WorkingDirectory = Path.GetFullPath(myDir)
                        }
                    };
proc.Start();
proc.WaitForExit();
string output = proc.StandardOutput.ReadToEnd();

Если я запускаю команду типа "dir" в Arguments = @"/c dir", вывод содержит сообщение от команды dir,

что я делаю не так?

Изменить: в консольном приложении выходные данные возвращаются нормально, но не в веб-приложении.


person Alex    schedule 12.10.2017    source источник
comment
Почему бы не запустить sw-precache напрямую?   -  person Vilx-    schedule 12.10.2017
comment
@Vilx- мне нужно автоматизировать процесс   -  person Alex    schedule 12.10.2017
comment
Вилкс имел в виду установку FileName на sw-precache и вообще не использование cmd.exe.   -  person Behrooz    schedule 12.10.2017
comment
@Behrooz FileName => Получает или устанавливает приложение или документ для запуска, это должен быть файл, sw-precache — это команда   -  person Alex    schedule 12.10.2017
comment
Сомневаюсь. В cmd.exe нет команды sw-precache, и, насколько я знаю, вы можете добавлять новые команды, только помещая файлы в PATH или AppPaths. Попробуйте установить флаг UseShellExecute на true и sw-precache в файле FileName.   -  person Vilx-    schedule 12.10.2017


Ответы (1)


WaitForExit сначала прочитайте вывод. Он остается после завершения процесса.

person Behrooz    schedule 12.10.2017
comment
Ваше веб-приложение работает с полным или частичным доверием? Я не веб-разработчик, поэтому я не могу быть уверен, но это может быть так. - person Behrooz; 12.10.2017
comment
мое веб-приложение имеет права на полный доступ, это не проблема ( - person Alex; 12.10.2017