Невозможно правильно выполнить devenv из C # - PullRequest
1 голос
/ 04 июня 2019

Я могу выполнить devenv из powershell без каких-либо проблем следующим образом:

PS C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE> ./devenv "C:\Users\m\Documents\Automation.AutoIVU\AutoIVU\AutoIVU\AutoIVU.csproj" /build "Debug|x64"

...

========== Build: 3 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Я пытаюсь выполнить из C #, но сталкиваюсь с проблемами:

var devEnvPath = @"C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE";
string autoIVUProjFile = @"C:\Users\m\Documents\Automation.AutoIVU\AutoIVU\AutoIVU\AutoIVU.csproj";

var command = $"/k .\\devenv \"{autoIVUProjFile}\" /build \"Debug | x64\"";

var cmdsi = new ProcessStartInfo
{
    WorkingDirectory = devEnvPath,
    WindowStyle = ProcessWindowStyle.Normal,
    FileName = "cmd.exe",
    RedirectStandardInput = true,
    UseShellExecute = false,
    Arguments = command
};

Process cmd = Process.Start(cmdsi);
cmd.WaitForExit();

Когда этовыполняется - в окно консоли выводится следующее:

Microsoft Visual Studio 2019 Version 16.0.28917.182.
Copyright (C) Microsoft Corp. All rights reserved.

The operation could not be completed

Use:
devenv  [solutionfile | projectfile | folder | anyfile.ext]  [switches]
enter code here

Кто-нибудь может увидеть, что мне не хватает?

1 Ответ

2 голосов
/ 04 июня 2019

Попробуйте, запустив devenv.exe прямо так:

var devEnvPath = @"C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\devenv.exe";
string autoIVUProjFile = @"C:\Users\m\Documents\Automation.AutoIVU\AutoIVU\AutoIVU\AutoIVU.csproj";

var command = $"\"{autoIVUProjFile}\" /build \"Debug | x64\"";

var cmdsi = new ProcessStartInfo
{
    WindowStyle = ProcessWindowStyle.Normal,
    FileName = devEnvPath,
    RedirectStandardInput = true,
    UseShellExecute = false,
    Arguments = command
};

Process cmd = Process.Start(cmdsi);
cmd.WaitForExit();
...