0

ビルド スクリプトを使用して 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.  

私のプロジェクトがソース管理下にあること、または単に「ソース管理」フォルダーにファイルパスにスペースがあるという事実に関係していると思われます。

パスを引用符で囲むにはどうすればよいですか (コマンド自体が引用符で囲まれているため)。

それがソース管理要因であり、ファイルがロックされているために失敗した場合 (ファイルをチェックインしてビルドしようとしました)、どうすればこれに対処できますか? プロジェクトをソース管理下に置きたいのは明らかです。

4

1 に答える 1

1

MSBuild files, inc. では""と を同じ意味で使用できます。''スペースを含むパスの場合、最悪の場合、 のような XML エスケープが必要になる場合があります&quot;。終了コードよりも優れた出力を得るには、冗長性をdetailed または diagnostic[MSBuild]に上げてみてください$()

于 2012-12-11T15:47:25.680 に答える