Я переопределил следующую цель в моем файле сборки TFS для запуска различных задач, которые настраивают базы данных, импортируют данные и т. Д. И т. Д. В Visual Studio 2008 - цель состояла в том, чтобы остановить только веб-сайт, связанный с пулом приложений, в сервер вместо остановки всей службы W3SVC на всей машине (см., например, альтернативную задачу):
<Target Name="AfterCompile">
<AppPoolController ApplicationPoolName="$(AppPoolName)" Action="Stop" ServerName="$(WebsiteMachine)" />
<!--<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Stop" MachineName="$(WebsiteMachine)" ServiceName="W3SVC"/>-->
<!-- various tasks and what not, which have been confirmed to work fine with the option of stopping the W3SVC -->
<AppPoolController ApplicationPoolName="$(AppPoolName)" Action="Start" ServerName="$(WebsiteMachine)" />
</Target>
Однако, когда я пытаюсь собрать, я получаю следующее:
$(BuildDirectoryPath)\BuildType\TFSBuild.proj(81,5): error : Index was outside the bounds of the array.
Различные задачи, упомянутые выше, просто: задачи, вызовы других целей и т. Д. Так где же источник ошибки? Я прочитал документацию MSBuild Community Tasks, но ближе всего к тому, что напоминает массив, это Enum в свойстве Action. Похоже, что другие люди получают ту же ошибку с различными приложениями, использующими XML, но до сих пор я не смог найти ничего поучительного. Я также пытался отключить this , но безрезультатно, если только я не пропустил что-то (что очень возможно).