【问题标题】:Dotless compiler exited with code -1 - MSBuildDotless 编译器以代码 -1 退出 - MSBuild
【发布时间】:2012-12-10 19:50:08
【问题描述】:

我正在尝试使用构建脚本运行 dotless.compiler.exe 以在构建时将我的 .less 文件编译为 .min.css:

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
  <!--    
    This MSBuild Script will compile all [*.less] files in the /CSS folder to their [*.min.css] counterparts.
    -->
  <ItemGroup>
    <LessFiles Include="Styles\*.less" />
  </ItemGroup>
  <Target Name="CompileDotlessCss" AfterTargets="AfterBuild">
    <ItemGroup>
      <Binaries Include="*.dll;*.exe"/>
    </ItemGroup>

    <!-- Compile dotLess CSS into minified full CSS -->
    <Exec Command="[MSBuild]\dotless.compiler.exe -m %(LessFiles.FullPath)  $([System.String]::Copy('%(LessFiles.FullPath)').Replace('.less','.min.css'))" />

  </Target>
</Project>

但是当我构建时,我得到:

The command "[MSBuild]\dotless.compiler.exe -m C:\Source Control\MyProject\MyProject.Web\Styles\main.less  C:\Source Control\MyProject\MyProject.Web\Styles\main.min.css" exited with code -1.  

我怀疑这与我的项目受源代码控制有关,或者只是文件路径在“源代码控制”文件夹中有一个空格。

如何将路径用引号括起来(因为命令本身在引号中)?

如果它是源代码控制因素并且由于文件被锁定而失败(我尝试使用签入的文件进行构建).. 我该如何处理?我显然希望将我的项目置于源代码控制之下。

【问题讨论】:

    标签: msbuild dotless


    【解决方案1】:

    您可以在 MSBuild 文件公司中互换使用 ""''。对于带有空格的路径,最坏的情况可能需要像 &amp;quot; 这样的 XML 转义。为了在退出代码之外获得更好的输出,请尝试将详细程度提高到 detailed or diagnostic,这可能与 [MSBuild] 有关,不应该是 $() 属性吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 2013-06-08
      • 2018-05-19
      • 2021-10-14
      相关资源
      最近更新 更多