Использование Drush Site-Install в C #

я пытаюсь выполнить установку сайта Drupal с использованием Drush в C # как часть полной установки сайта Windows Server с использованием MSI. Команда Drush, которую я использую, является следующей.

C:\ProgramData\Drush\Drush.bat -y si application_name --db-url=sqlsrv://admin_name:password(local)\SQLEXPRESS:/database_name --account-name=admin [email protected] --account-pass=Password1234 --site-mail="[email protected]" --site-name="Site Name" install_configure_form.site_default_country=GB install_configure_form.date_default_timezone="Europe/London"

И это прекрасно работает при запуске из cmd.exe в рабочем каталоге (inetpub \ application_name).

Проблема возникает, когда вышеперечисленное помещается в код и выполняется во время установки и всегда приводит к следующей ошибке (каждый раз с другим именем файла).

Невозможно распаковать C: \ ProgramData \ Drush \ lib \ druFD63.tmp.gz

Код C #, используемый для выполнения команды, выглядит следующим образом:

public static ActionResult Drush_Configuration(Session session)
    {       
        string strArgs = "-y si application_name --db-url=sqlsrv://admin_name:password(local)\SQLEXPRESS:/database_name --account-name=admin [email protected] --account-pass=Password1234 --site-mail="[email protected]" --site-name="Site Name" install_configure_form.site_default_country=GB install_configure_form.date_default_timezone="Europe/London";
        string strExeCmd = @"C:\ProgramData\Drush\Drush.bat ";
        strExeCmd = strExeCmd + strArgs;
        string strLocation = @"C:\inetpub\application_name";

        session.Log("Starting Drush Configuration");
        session.Log("Command line is: " + strExeCmd + " " + strArgs);

        int exitCode;
        ProcessStartInfo processInfo;
        Process process;
        try
        {
            processInfo = new ProcessStartInfo("cmd.exe", "/c " + strExeCmd);
            processInfo.WorkingDirectory = strLocation;
            processInfo.WindowStyle = ProcessWindowStyle.Normal;
            processInfo.CreateNoWindow = true;
            processInfo.UseShellExecute = false;
            // *** Redirect the output ***
            processInfo.RedirectStandardError = true;
            processInfo.RedirectStandardOutput = true;

            process = Process.Start(processInfo);
            process.WaitForExit();

            // *** Read the streams ***
            string output = process.StandardOutput.ReadToEnd();
            string error = process.StandardError.ReadToEnd();

            exitCode = process.ExitCode;

            session.Log("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output));
            session.Log("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
            session.Log("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
            process.Close();
        }
        catch (Exception e)
        {
            session.Log("Error: " + e);
            return ActionResult.Failure;
        }

        session.Log("Drush Configuration completed successfully");
        return ActionResult.Success;
    }

И, как указано выше, это всегда приводит кне в состоянии распаковать ошибка.

Кто-нибудь когда-нибудь использовал c # для запуска Site-Install в Drush? Кто-нибудь знает, почему это может потерпеть неудачу при выполнении таким способом?

Любые мысли или советы будут с благодарностью.

Я использую Drush-5.8-2012-12-10-Installer-v1.0.20, Drupal 7 и Windows Server 2008 R2 x64.

Ответы на вопрос(1)

Ваш ответ на вопрос