在VS2015中,我创建了一个测试C ++控制台应用程序' Kon' (新项目 - > Visual C ++ - > Win32-> Win32控制台应用程序)。
如果我使用/ p:OutDir参数启动MSBuild,它会一直失败:
* C:\ examples \ Kon> msbuild / p:Configuration =" Release" / P:OUTDIR =" C:\出\"
Microsoft(R)Build Engine版本14.0.25420.1 版权所有(C)Microsoft Corporation。版权所有。 一次一个地在此解决方案中构建项目。要启用并行构建,请添加" / m"开关。 Build于5/8/2018 4:29:00 PM开始。 项目" C:\ examples \ Kon \ Kon.sln"在节点1上(默认目标)。 ValidateSolutionConfiguration: 构建解决方案配置"发布| 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:\例子\昆\ Kon.sln" (默认目标)(1) - > " C:\例子\昆\昆\ Kon.vcxproj" (默认目标)(2) - > 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:\例子\昆\昆\ Kon.vcxproj] 0警告 1个错误 时间流逝00:00:00.12 *
我在各种C ++项目(包括MFC和ATL)中遇到同样的错误,但是使用此选项可以很好地构建C#项目。
答案 0 :(得分:0)
如果你看一下
错误MSB4184:表达式 “[System.IO.Path] :: Combine(C:\ examples \ Kon \ Kon \,C:\ out”\ Kon.exe)“ 无法评估。路径中的非法字符。
路径中间有双引号。因此,如果您从OutDir参数中删除双引号,例如/ p:OutDir = C:\ out,那么它应该按预期工作。