MSBUILD配置:将输出复制到临时区域

Tim*_*Tim 3 msbuild

好吧,我不是MSBUILD最好的.实际上,我什么都不知道.我需要一些帮助来配置我的解决方案文件,以告诉MSbuild将已编译的输出复制到暂存区域.该解决方案有大约35个项目.我需要的只是其中5个要在发布模式下复制到暂存文件夹.请假设我什么都不知道......

谢谢

Sim*_*ens 5

您可以创建一个如下所示的Target:

  <Target Name="CopyFiles" DependsOnTargets="YourBuildTargets">
    <CreateItem Include="YourSolutionPath\bin\$(Configuration)\*.*">
      <Output ItemName="YourProjectOutputFiles" TaskParameter="Include"></Output>
    </CreateItem>

    <Copy SourceFiles="@(YourProjectOutputFiles)" DestinationFolder="$(DestinationFolder)"></Copy>
  </Target>

这将创建一个目标CopyFiles,该目标取决于完成YourBuildTargets(您可以在其中放置多个依赖项,用半冒号分隔).它描述了一个Item,它包含项目目录中的所有文件(*.*).然后它运行该Copy命令,并将项目描述的文件复制到目标文件夹.如果您有许多项目都是由1个MSBuild脚本构建的,那么CreateItem每个项目都有一个节点可以索引文件,还有一个相应的Copy节点来执行复制.

或者,如果您只想分别为每个项目执行此操作,只需将此块放在每个.csproj文件中.

现在只需将CopyFiles目标包含在脚本构建的目标列表中.