Вопрос

В рамках моей сборки TFS (2008) я хочу вручную скопировать двоичные файлы и представления проекта ASP.NET MVC в несколько разных мест.Все существующие двоичные файлы и представления успешно копируются.Однако, к сожалению, любые вновь добавленные представления игнорируются во время их первой сборки.Если я затем запущу еще одну сборку, они включатся.

Вот фрагмент дополнений, которые я внес в TFSBuild.proj...

<ItemGroup>
  <BinaryFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\bin\*.*" />
  <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.aspx" />
  <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.ascx" />
</ItemGroup>

<Target Name="AfterDropBuild">
  <Message Text="Starting deployment copy..." />
  <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\bin\" ContinueOnError="false" />
  <Copy SourceFiles="@(ViewFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\Views\%(RecursiveDir)" ContinueOnError="false" />
  <Message Text="Deployment copy completed." />
</Target>

Подозреваю, что список файлов для копирования формируется слишком рано.Должен ли я использовать «AfterDropBuild» или это лучшее целевое имя?

Это было полезно?

Решение

Мне удалось решить эту задачу самому (было очень полезно просто задать вопрос и организовать свои мысли!).Мои подозрения, что списки файлов создавались слишком рано, оправдались.Поместив ItemGroup внутри элемента Target, вы можете указать, когда он будет оцениваться.

Исправленный фрагмент:

<Target Name="AfterDropBuild">
  <ItemGroup>
    <BinaryFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\bin\*.*" />
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.aspx" />
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.ascx" />
  </ItemGroup>

  <Message Text="Starting deployment copy..." />
  <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\bin\" ContinueOnError="false" />
  <Copy SourceFiles="@(ViewFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\Views\%(RecursiveDir)" ContinueOnError="false" />
  <Message Text="Deployment copy completed." />
</Target>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top