この節では、コンポーネントのアンインストールブロック内でだけ使用できる <uninstall> ステップと <undeployResource> ステップを説明します。
このステップは、ターゲットホストからコンポーネントをアンインストールするために使用され、任意のコンポーネントのアンインストールブロックで使用できます。このステップを使用することで、対象コンポーネントの指定されたアンインストールブロックのステップが実行されます。
このステップの構文は、単純プランの <uninstall> 用に指定されるものと同じです。ただし、コンポーネントのターゲッターは省略できます。その場合は、<thisComponent> が想定されます。
コンポーネント内で使用される場合、このステップは同一コンポーネント内のほかの既存アンインストールブロックの呼び出しに使用されます。この場合、一番外側のアンインストールブロックがその実行を完了するまで、コンポーネントはアンインストールされません。また、ほかのローカルアンインストールブロックの呼び出し対象がほかのホストに変更された場合でも、コンポーネントは当初アンインストールステップの対象となったホストでのみアンインストールされます。
このステップは、参照先コンポーネントをアンインストールする目的で、複合コンポーネント内でも使用できます。 複合コンポーネントがアンインストールされる場合、入れ子になったその参照先コンポーネントのうち明示的にアンインストールされなかったものはすべて、アンインストールブロックを実行することなくシステムによって暗黙にアンインストールされます。しかし、明示的にアンインストールされなかった最上位の参照先コンポーネントはインストールされたままとなります。
このステップは、包含コンポーネントからリソースを削除するために使用されます。このステップは単純コンポーネントのアンインストールブロックでのみ使用可能で、また属性も子要素もありません。
deployMode=ADD_TO のファイルは削除されますがサブディレクトリは残る、ディレクトリ型リソースです。
deployMode=REPLACE のディレクトリ全体とその内容が削除される、ディレクトリ型リソースです。
ほかのリソースはどれも単純ファイルとして扱われ、削除されます。
リソースは、コンポーネントのインストール時に初めから配備されたかどうかにかかわらず削除されます。コンポーネントが、<deployResource> ステップを含まないインストールブロックを使用してインストールされた場合でも、<undeployResource> ステップによって、初めからコンポーネントによってインストールされたかのように、リソースが削除されます。