Je remplace la cible suivante dans mon fichier de construction TFS pour exécuter diverses tâches qui configurent des bases de données, importent des données, etc., etc. dans Visual Studio 2008 - l'objectif était d'arrêter uniquement le site Web associé à un pool d'applications sur le serveur au lieu d'arrêter l'ensemble du service de W3SVC sur l'ensemble de la machine (voir tâche alternative par exemple):Erreur AppController: Index hors limites
<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>
Cependant, lorsque je tente une construction, je reçois le texte suivant:
$(BuildDirectoryPath)\BuildType\TFSBuild.proj(81,5): error : Index was outside the bounds of the array.
Les différentes tâches mentionnées ci-dessus ne sont que: tâches, appels vers d'autres cibles, etc. Où est la source de l'erreur? J'ai lu la documentation MSBuild Community Tasks, mais la chose la plus proche de tout ce qui ressemble à un tableau est une Enum sur la propriété Action. Il semble que d'autres personnes obtiennent la même erreur avec des applications différentes en utilisant XML, mais jusqu'à présent je n'ai pas été capable de trouver quelque chose d'éclairant. J'ai également essayé d'aller this, mais en vain, à moins que j'ai raté quelque chose (ce qui est très possible).
Il s'avère que j'utilisais une version obsolète de tâches communautaires. Je n'ai pas encore testé la dernière version avec le correctif puisque je ne suis pas en charge de la machine de build et que je ne peux pas installer des trucs au hasard sur le serveur :) –