Вы можете полностью удалить файл package-lock.json
(а также node_modules
). Они будут восстановлены, когда вы запустите npm install
.
У Вас есть проблема с синтаксисом параметров командной строки к cmd.exe. Поэтому cmd никогда не выходит.
Чтобы иметь cmd.exe, запускает программу и затем выход, необходимо отправить ему синтаксис "/c [команда]". Попытайтесь выполнить тот же код со строкой
si.StartInfo.Arguments = "dir";
замененный
si.StartInfo.Arguments = "/c dir";
и посмотрите, работает ли это.
Скорее всего, Ваша проблема с полномочиями. Пользователь, при которых выполнениях процесса ASP.NET с очень ограниченными правами.
Так, или необходимо установить верные полномочия для того пользователя или выполнить ASP.NET при некотором другом пользователе.
Это скрывает угрозы безопасности, хотя, таким образом, необходимо быть очень осторожными.
Это - безумие! Используйте Систему. IO namepace для создания списка файлов из программы C#! Очень легко сделать; хотя эта техника также имеет проблемы авторизации.
Используйте систему. Диагностика. Процесс.
Вот некоторый код ASP.NET, выходящий из оболочки для выполнения команд подверсии на командной строке.
///////////////////////////////////////////////////////////////////////
public static string run_svn(string args_without_password, string svn_username, string svn_password)
{
// run "svn.exe" and capture its output
System.Diagnostics.Process p = new System.Diagnostics.Process();
string svn_path = Util.get_setting("SubversionPathToSvn", "svn");
p.StartInfo.FileName = svn_path;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
args_without_password += " --non-interactive";
Util.write_to_log ("Subversion command:" + svn_path + " " + args_without_password);
string args_with_password = args_without_password;
if (svn_username != "")
{
args_with_password += " --username ";
args_with_password += svn_username;
args_with_password += " --password ";
args_with_password += svn_password;
}
p.StartInfo.Arguments = args_with_password;
p.Start();
string stdout = p.StandardOutput.ReadToEnd();
p.WaitForExit();
stdout += p.StandardOutput.ReadToEnd();
string error = p.StandardError.ReadToEnd();
if (error != "")
{
Util.write_to_log(error);
Util.write_to_log(stdout);
}
if (error != "")
{
string msg = "ERROR:";
msg += "<div style='color:red; font-weight: bold; font-size: 10pt;'>";
msg += "<br>Error executing svn.exe command from web server.";
msg += "<br>" + error;
msg += "<br>Arguments passed to svn.exe (except user/password):" + args_without_password;
if (error.Contains("File not found"))
{
msg += "<br><br>***** Has this file been deleted or renamed? See the following links:";
msg += "<br><a href=http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html>http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html</a>";
msg += "<br><a href=http://subversion.open.collab.net/articles/best-practices.html>http://subversion.open.collab.net/articles/best-practices.html</a>";
msg += "</div>";
}
return msg;
}
else
{
return stdout;
}
}