关于VS2012 (error MSB6001 “cmd.exe”的命令行开关无效。路径的形式不合法)错误的一种解决方法
分类: 个人心得 | 标签: 工作心得 | 作者: jhgameboy 相关 | 发布日期 : 2015-04-23 | 热度 : 674°
工作上学习用的工程,从2008升级到2013中遇到的问题。编译过程遇到 error MSB6001 “cmd.exe”的命令行开关无效。的错误
一时无法解决,在寻求无所不能的Google之后,终于发现了一个解决办法。
原链接如下
http://connect.microsoft.com/VisualStudio/feedback/details/763697/error-msb6001-vs2012
简单的说,就是在Microsoft.CppCommon.targets中找到
Look for the CustomBuild task definition:
<Target Name="CustomBuild"
Condition="'@(CustomBuild)' != ''"
DependsOnTargets="SelectCustomBuild;ComputeCustomBuildOutput"
BeforeTargets="$(CustomBuildToolBeforeTargets)"
AfterTargets="$(CustomBuildToolAfterTargets)"
>
并在下面加入这段
<ItemGroup>
<_ExpandedAdditionalInputs Include="%(CustomBuild.AdditionalInputs)"/>
<_ExpandedOutputs Include="%(CustomBuild.Outputs)"/>
<CustomBuild>
<AdditionalInputs>@(_ExpandedAdditionalInputs)</AdditionalInputs>
<Outputs>@(_ExpandedOutputs)</Outputs>
</CustomBuild>
</ItemGroup>
重新编译就好了
我的在上边改好后编译出现 warning MSB8017: A circular dependency has been detected while executing custom build commands for...,定义到出错点,还是在
<Target Name="CustomBuild"
Condition="'@(CustomBuild)' != ''"
DependsOnTargets="SelectCustomBuild;ComputeCustomBuildOutput"
BeforeTargets="$(CustomBuildToolBeforeTargets)"
AfterTargets="$(CustomBuildToolAfterTargets)"
>
并在下面加入这段
<ItemGroup>
<_ExpandedAdditionalInputs Include="%(CustomBuild.AdditionalInputs)"/>
<_ExpandedOutputs Include="%(CustomBuild.Outputs)"/>
<CustomBuild>
<AdditionalInputs>@(_ExpandedAdditionalInputs)</AdditionalInputs>
<Outputs>@(_ExpandedOutputs)</Outputs>
</CustomBuild>
</ItemGroup>
ok