2009-08-19 20 views
1

Visual Studio 2008でデータベースを設定する、データをインポートするなどのさまざまなタスクを実行するために、TFSビルドファイル内の次のターゲットをオーバーロードしました。全体ではなく、マシン上で全体W3SVCサービスを停止するサーバー上のアプリケーションプールに関連付けられている(例えば別のタスクを参照してください):AppControllerエラー:インデックスが範囲外にある

<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コミュニティタスクのドキュメントを読んでいますが、配列に似ているものに最も近いものは、ActionプロパティのEnumです。他の人がXMLを使ってさまざまなアプリケーションで同じエラーに遭遇したようですが、これまでのところ私は啓発的なものを見つけることができませんでした。私もthisに行ってみましたが、何かを見逃していない限り、無駄にしませんでした(これは非常に可能です)。

答えて

0

エラーはおそらく、タスク内のコードによってスローされた例外によるものです。境界外のインデックスは、文字列インデックス付きのプロパティによってスローされる可能性があります.AppPoolの名前が正しく入力されない可能性があります。

タスクのソースを見て、配列またはプロパティのインデックスを確認してください。

また、Execタスクを使用してiisapp.vbsにシェルすることもできます。

+0

私はコミュニティタスクの古いバージョンを使用していました。私はまだビルドマシンを担当していないため、サーバにランダムなものをインストールすることができないので、修正プログラムを使って最新バージョンをテストすることはできませんでした。 –

関連する問題