VS 2013中的构建后任务失败

时间:2013-10-21 14:27:14

标签: msbuild less msbuild-task visual-studio-2013

在Visual Studio 2012中,我运行了以下Post-Build任务来编译和组合我的LESS文件:

$(MSBuildBinPath)\msbuild.exe "$(ProjectDir)MSBuildSettingsLess.xml"

我的MSBuildSettingsLess.xml看起来像:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
    <Target Name="CompileDotlessCss">
        <ItemGroup>
            <Binaries Include="*.dll;*.exe"/>
        </ItemGroup>

        <!-- Compile dotLess CSS into minified full CSS -->
        <Exec Command="$(SolutionDir)..\Tools\dotless.compiler.exe $(ProjectDir)..\GMHC\Content\less\responsive.less $(ProjectDir)..\GMHC\Content\bootstrap-responsive.less.css"/>
        <Exec Command="$(SolutionDir)..\Tools\dotless.compiler.exe $(ProjectDir)..\GMHC\Content\less\bootstrap.less $(ProjectDir)..\GMHC\Content\bootstrap.less.css"/>
    </Target>
</Project>

在Visual Studio 2013中,失败并显示以下错误:

命令“C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ msbuild.exe”C:\ Users \ Administrator \ Documents \ Projects \ MedicalMissions \ GMHC \ MSBuildSettingsLess.xml退出,代码为9009。

输出窗口显示以下内容:

1&GT; 'C:\ Program'不被识别为内部或外部命令,
1 GT;可操作程序或批处理文件 1 GT; C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets(4429,5):错误MSB3073:命令“C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ msbuild .exe“C:\ Users \ Administrator \ Documents \ Projects \ MedicalMissions \ GMHC \ MSBuildSettingsLess.xml”

知道为什么失败或者如何找到它的底部?

3 个答案:

答案 0 :(得分:17)

答案实际上非常简单,我只需要用引号括起来。所以新的Post-Build任务是:

"$(MSBuildBinPath)\msbuild.exe" "$(ProjectDir)MSBuildSettingsLess.xml"

看起来它也向后兼容VS 2012。

答案 1 :(得分:3)

您的msbuild defintion(.proj)文件中可能需要引号。

通用示例:

  <Exec Command="&quot;c:\Folder With Spaces\myfile.exe&quot;"/>  

答案 2 :(得分:0)

同样的问题发生在我身上,但我在文件夹中使用空间。当我移除空间时,解决方案正在运行。

Do:
D:\MyDetailsMuthuvelF\Project_Document\

Don't:
D:\My Details Muthuvel F\Project_Document\