Frage

Im Rahmen meiner TFS (2008) Build ich manuell die Binärdateien und Ansichten von einem ASP.NET MVC-Projekt zu einer Reihe von verschiedenen Orten kopieren mag. Alle vorhandenen Binärdateien und Ansichten werden erfolgreich kopiert. Leider aber werden alle neu hinzugefügten Ansichten während ihrer ersten Build ignoriert. Wenn ich dann einen anderen Build starten, sie enthalten sind.

Hier ist ein Ausschnitt der Zusätze ich TFSBuild.proj gemacht haben ...

<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>

Ich vermute, dass die Liste der Dateien zu kopieren wird zu früh gebaut. Sollte ich „AfterDropBuild“ oder ist ihr eine bessere Zielnamen verwenden?

War es hilfreich?

Lösung

ich es geschafft, diese selber ein zu lösen (es war sehr hilfreich nur die Frage zu stellen und meine eigenen Gedanken zu organisieren!). Mein Verdacht, dass die Listen von Dateien wurden zu früh gebaut war korrekt. Durch die Platzierung Sie können die ItemGroup innerhalb des Zielelements angeben, wenn es bewertet wird.

Korrigierte Schnipsel ist:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top