tfs.visualstudio.comでホストされているTFSソース管理リポジトリにバインドされているASP.NETWebAPIプロジェクトと、出力をAzureに公開する継続的インテグレーションビルド(これもtfs.visualstudio.com)があります。CIビルドは適切にトリガーされ、ビルド出力はAzureにデプロイされますが、WebAPIプロジェクトのヘルプページを駆動するXMLドキュメントファイルもデプロイに含める必要があります。
グーグルを行った後、pubxmlファイルに以下を追加する必要があることを示すブログ投稿を見つけました。
<PropertyGroup>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForMsdeployDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="bin\**\*.xml" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
これは、Visual Studio 2012から手動で公開する場合は機能しますが、CIビルドがその出力を公開する場合は機能しません。CIビルドはXMLドキュメントファイルを公開しません。
チームビルドサーバーと開発ボックスでこれが異なる動作をするのはなぜですか?