В VS2015 я создал тестовое консольное приложение C ++ 'Kon' (Новый проект-> Visual C ++ -> Win32-> Консольное приложение Win32).
Если я запускаю MSBuild с параметром / p: OutDir, он все время терпит неудачу:
* C: \ examples \ Kon> msbuild / p: Configuration = "Release" / p: OutDir = "C: \ out \"
Microsoft (R) Build Engine версия 14.0.25420.1
Авторское право (C) Microsoft Corporation. Все права защищены.
Сборка проектов в этом решении по одному. Чтобы включить параллельную сборку, добавьте ключ «/ m».
Сборка началась 8/8/2018 16:29:00.
Проект "C: \ examples \ Kon \ Kon.sln" на узле 1 (цели по умолчанию).
ValidateSolutionConfiguration:
Конфигурация строительного решения "Release | x64".
Проект "C: \ examples \ Kon \ Kon.sln" (1) строит "C: \ examples \ Kon \ Kon \ Kon.vcxproj" (2) на узле 1 (цели по умолчанию).
C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ Microsoft.CppCommon.targets (31,5): ошибка MSB4184: выражение "[System.IO.Path] :: Объединить (C: \ examples \ Kon \ Kon \, C: \ out "\ Kon.exe)" c
не будет оцениваться. Недопустимые символы в пути. [C: \ examples \ Kon \ Kon \ Kon.vcxproj]
Готово Создание проекта "C: \ examples \ Kon \ Kon \ Kon.vcxproj" (цели по умолчанию) - СБОЙ.
Готово Создание проекта "C: \ examples \ Kon \ Kon.sln" (цели по умолчанию) - СБОЙ.
Сборка не удалась.
"C: \ examples \ Kon \ Kon.sln" (цель по умолчанию) (1) ->
"C: \ examples \ Kon \ Kon \ Kon.vcxproj" (цель по умолчанию) (2) ->
C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ Microsoft.CppCommon.targets (31,5): ошибка MSB4184: выражение "[System.IO.Path] :: Combine (C) : \ examples \ Kon \ Kon \, C: \ out "\ Kon.exe)"
не может быть оценено. Нелегальные персонажи в пути. [C: \ примеры \ Кон \ Кон \ Kon.vcxproj]
0 Предупреждение (я)
1 ошибка
Прошедшее время 00: 00: 00.12 *
Я получаю ту же ошибку со всеми видами проектов C ++, включая MFC и ATL, но проекты C # прекрасно работают с этой опцией.