質問

私の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」または彼らの優れたターゲット名であるを使用する必要がありますか。

役に立ちましたか?

解決

私は(それだけで質問をし、自分の考えを整理する非常に有用だった!)この1自分自身を解決するために管理しました。ファイルのリストがあまりにも早く建設された私の疑惑は正しかったです。それが評価されるときTarget要素内のItemGroupを配置することによって、あなたは指定することができます。

を修正しスニペットがあります:

<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