MSBuild合并文件

MSBuild合并文件,msbuild,Msbuild,我试图在构建过程中将所有javascript文件合并到一个项目中,但这对我来说根本不起作用。以下是我所拥有的: <Target Name="CombineJS"> <CreateItem Include=".\**\*.js"> <Output TaskParameter="Include" ItemName="jsFilesToCombine" /> </CreateItem> <ReadLinesFromFile F

我试图在构建过程中将所有javascript文件合并到一个项目中,但这对我来说根本不起作用。以下是我所拥有的:

<Target Name="CombineJS">
  <CreateItem Include=".\**\*.js">
    <Output TaskParameter="Include" ItemName="jsFilesToCombine" />
  </CreateItem>

  <ReadLinesFromFile File="@(jsFilesToCombine)">
    <Output TaskParameter="Lines" ItemName="jsLines" />
  </ReadLinesFromFile>

  <WriteLinesToFile File="all.js" Lines="@(jsLines)" Overwrite="true" />
</Target>

MSBuild在
ReadLinesFromFile
行上抛出错误,表示“File”参数的值无效。(只有一个文件要合并时没有错误)

因此,有两个问题:

  • 我做错了什么
  • 是否有更好的方法在MSBuild任务中组合文件?我问这个问题是因为我知道我当前的流程删除了所有的制表符和空行,这对我来说没什么大不了的,但仍然有点烦人

  • 用于读取文件的
    ReadLinesFromFileTask
    将单个文件作为
    file
    属性()的输入。不能使用此任务一次从多个文件中读取行。但是,您可以使用为每个文件运行任务数次。

    将第6行更改为:

    <ReadLinesFromFile File="%(jsFilesToCombine.FullPath)">
    
    
    
    当输入基本上是以分号分隔的字符串列表时,使用
    @
    运算符

    %
    运算符用于将项目组扩展为字符串(属性)