Я использую Visual Studio 2017 для работы с C ++.
Я могу создать двоичный файл релиза с msbuild /p:configuration=release
в командной строке.При попытке собрать из другого процесса, используя system( "msbuild C:\\Users\\Chili\\Desktop\\Projects\\TestHarness\\TestHarness.sln /p:configuation=release" )
, он создает двоичный файл Debug.
При сборке из командной строки, используя msbuild C:\\Users\\Chili\\Desktop\\Projects\\TestHarness\\TestHarness.sln /p:configuation=release
(из другого рабочего каталога), я также получаю exe-файл Debug.Я также попытался изменить рабочий каталог и затем вызвать из моего процесса с msbuild /p:configuration=release
, но это только дает отладочный двоичный файл.Кроме того, я заметил, что из командной строки msbuild /p:configuration=invalid
выдаст ошибку, тогда как msbuild /p:configuration=invalid
из моего процесса не выдаст никакой ошибки (опять же, отладка сборки).Однако я do знаю, что аргументы командной строки достигают msbuild, потому что, если я попытаюсь, например, msbuild /invalid:configuration=invalid
из моего процесса, я do получит ошибку о переключателе.
РЕДАКТИРОВАТЬ На самом деле, кажется, что он вообще игнорирует переключатели / p / property -property, так как я могу сделать / property: bad = food, и это не бросает глаз.
Кто-нибудь знаетчто вызывает это несоответствие между вызовом из командной строки и вызовом из процесса?