1

I can execute devenv from powershell without any issues as follows:

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 ==========

I'm trying to execute from C# but running into issues:

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();

When this executes - the following is printed to the console window:

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

Can anybody see what I'm missing?

TomSelleck
  • 6,706
  • 22
  • 82
  • 151

1 Answers1

2

Try by running devenv.exe directly like this:

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();
Leo
  • 5,013
  • 1
  • 28
  • 65