Задача MSBuild Copy не копировать файлы в первый раз - PullRequest
12 голосов
/ 03 марта 2009

Я создал файл build.proj, который состоит из задачи по копированию файлов, которые будут созданы после завершения сборки. Проблема в том, что эти файлы не копируются в первый раз, и мне нужно снова запустить msbuild на build.proj, чтобы файлы могли быть скопированы Может кто-нибудь сказать мне, что не так со следующим файлом build.proj:

<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>

<SourcePath Condition="'$(SourcePath)' == ''">$(MSBuildProjectDirectory)</SourcePath> 

<BuildDir>$(SourcePath)\build</BuildDir>

</PropertyGroup> 

<ItemGroup> 
    <Projects 
       Include="$(SourcePath)\src\myApp\application.csproj">  
    </Projects> 
</ItemGroup> 

<Target Name="Build">
   <Message text = "Building project" />    
   <MSBuild   
     Projects="@(Projects)" 
     Properties="Configuration=$(Configuration)" /> 
</Target>

<ItemGroup>
   <OutputFiles Include ="$(MSBuildProjectDirectory)\**\**\bin\Debug\*.*"/>
</ItemGroup>

<Target Name="CopyToBuildFolder">
   <Message text = "Copying build items" />
   <Copy SourceFiles="@(OutputFiles)" DestinationFolder="$(BuildDir)"/>
</Target>

<Target Name="All"
   DependsOnTargets="Build; CopyToBuildFolder"/>

</Project> 

1 Ответ

22 голосов
/ 03 марта 2009

Группы элементов оцениваются при разборе скрипта. В то время ваших файлов еще нет. Чтобы найти файлы, вам нужно заполнить группу предметов внутри цели.

  <!-- SQL Scripts which are needed for deployment -->
  <Target Name="BeforeCopySqlScripts">
    <CreateItem Include="$(SolutionRoot)\04\**\Databases\**\*.sql">
      <Output ItemName="CopySqlScript" TaskParameter="Include"/>
    </CreateItem>
  </Target>

В этом примере создается группа элементов с именем «CopySqlScript» с использованием выражения в атрибуте «Включить».

Edit:

Теперь я могу прочитать ваш скрипт: добавьте тег CreateItem в вашу цель CopyToBuildFolder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...