在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”
知道为什么失败或者如何找到它的底部?
答案 0 :(得分:17)
答案实际上非常简单,我只需要用引号括起来。所以新的Post-Build任务是:
"$(MSBuildBinPath)\msbuild.exe" "$(ProjectDir)MSBuildSettingsLess.xml"
看起来它也向后兼容VS 2012。
答案 1 :(得分:3)
您的msbuild defintion(.proj)文件中可能需要引号。
通用示例:
<Exec Command=""c:\Folder With Spaces\myfile.exe""/>
答案 2 :(得分:0)
同样的问题发生在我身上,但我在文件夹中使用空间。当我移除空间时,解决方案正在运行。
Do:
D:\MyDetailsMuthuvelF\Project_Document\
Don't:
D:\My Details Muthuvel F\Project_Document\