如果计算机上安装了nodejs,我怎么能从.csproj文件中知道?

时间:2013-11-19 21:57:41

标签: node.js msbuild less

我正在使用* .csproj中的自定义目标和需要nodejs的原始编译器构建* .less文件。节点在所有开发机器上都不可用,因此如果计算机上没有节点,我需要能够关闭目标。我怎么能这样做?

<Target Name="CompileLessCss" BeforeTargets="Compile"
        Inputs="@(LessCssRoot);@(LessCssInput)" Outputs="@(LessCssOutput)">
    <Exec Command="node &quot;$(SolutionDir)/Tools/less.js/bin/lessc&quot; --verbose @(LessCssRoot) @(LessCssOutput)" ConsoleToMSBuild="true">
      <Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />
    </Exec>
</Target>

1 个答案:

答案 0 :(得分:0)

您可以检查$(PATH)变量中是否有nodejs路径可用。或者您可以使用continue on error执行一次节点,以确定它是否与exec任务一起安装,不是很好但是它可以工作。

<Exec ContinueOnError="True"  Command="node --help">
  <Output TaskParameter="ExitCode" PropertyName="ErrorCode"/>
</Exec>

<PropertyGroup>  
  <NodeInstalled>False</NodeInstalled>      
  <NodeInstalled Condition=" '$(ErrorCode)' == '0' ">True</NodeInstalled>
</PropertyGroup>

<Exec Command="node [args]"  Condition=" '$(NodeInstalled)' == 'True' " />