TFSDeleteProject を使用して、オンプレミスの Azure DevOps 上のプロジェクトを削除する
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
TFSDeleteProject を使用してプロジェクトが不要になったときに、プロジェクトをAzure DevOps Serverから削除できます。
また、プロジェクトの作成が失敗した後も削除されていないコンポーネントがある場合は、TFSDeleteProject を使用して削除できます。
管理コンソールを使用してAzure DevOps Servicesからプロジェクトを削除するには、「プロジェクトを削除する」を参照してください。
警告
TFSDeleteProject はプロジェクトを完全に破棄し、その後は復旧できません。 TFSDeleteProject を使用する前に、すべての重要なプロジェクト データをバックアップする必要があります。
TFSDeleteProject コマンド ライン ツールにアクセスするには、Visual Studio または Team エクスプローラーがインストールされているコマンド プロンプト ウィンドウを開き、次のように入力します。
cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
32 ビット版の Windows では、 %programfiles(x86)% を%programfiles% に置き換えます。
前提条件
TFSDeleteProject コマンドを使用するには、Team Foundation Administrators セキュリティ グループまたは Project Administrators セキュリティ グループのメンバーである必要があります。
詳細については、「Azure DevOps Serverの管理者権限を設定する」を参照してください。
TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName
オプション
説明
/q
省略可能。 非表示出力モードを使用します。 ユーザーに確認のプロンプトが表示されません。
/force
省略可能。 削除できないコンポーネントがある場合でも、削除プロセスを続行する場合に指定します。
/excludewss
省略可能。 プロジェクトに関連付けられている SharePoint サイトを削除しないように指定します。 他のプロジェクトで引き続き使用できるように、既存のサイトを維持するには、このオプションを指定します。
/collection:URL
必須。 プロジェクト コレクションの URI を指定します。 URI には、次の形式を使用する必要があります。 http://ServerName:Port/VirtualDirectoryName/CollectionName
仮想ディレクトリを指定しない場合は、URI に 次の形式を使用する必要があります。 http://ServerName:Port/CollectionName
TeamProjectName
必須。 プロジェクトの名前です。 名前に空白が含まれている場合は、二重引用符で囲みます。
注釈
プロジェクトを作成すると、Azure DevOps Serverは、Azure DevOps Serverをホストするサーバー上にデータ オブジェクトを作成し、SharePoint 製品をホストするサーバーと、SQL Server Reporting Servicesをホストするサーバーにデータ オブジェクトを作成できます。
プロジェクトを削除すると、レポートはSQL Server Reporting Servicesから自動的に削除されます。
プロジェクトを削除するときに、SharePoint サイトをサポートするために作成されたオブジェクトを削除するかどうかを選択できます。
ただし、エラーが発生すると、Azure DevOps Serverがすべてのオブジェクトを作成または削除できなくなる可能性があります。 これらの問題のトラブルシューティングを行うために、次のセクションでは、背景情報、他のリソースへのリンク、および問題の原因の特定、問題の修正、TFSDeleteProject の実行後に残っているデータ オブジェクトの削除に役立つ特定の手順について説明します。
TFSDeleteProject プロセス
TFSDeleteProject コマンド ライン ツールを使用すると、最初にプロジェクト データが削除され、次にプロジェクト Web サイトが削除されます。
フェーズ 1: TFSDeleteProject によってプロジェクト データが削除される
最初のフェーズでは、TFSDeleteProject によって次の手順が自動的に実行され、プロジェクト データが削除されます。
TFSDeleteProject は、削除の候補となるすべてのコンポーネントのインベントリを作成します。
これには、Test Manager、Team Foundation Build、Team Foundation バージョン管理と統合されるコンポーネントが含まれます。
TFSDeleteProject は、チーム エクスプローラーにプロジェクト ノードを表示するコンポーネントを削除します。
TFSDeleteProject は、バージョン管理情報に削除のフラグを設定しますが、この情報は直ちに削除されません。
この情報には、指定されたプロジェクトのバージョン管理のすべての分岐が含まれますが、プロジェクト外部の他の分岐は含まれません。
- 親ブランチと子ブランチの両方がプロジェクト内にある場合、TFSDeleteProject は両方とも削除のフラグを設定します。
- 親ブランチと子ブランチが異なるプロジェクトにある場合、TFSDeleteProject は指定されたブランチのみにフラグを設定します。
- 別のプロジェクトが指定したプロジェクトのブランチである場合、TFSDeleteProject は指定されたプロジェクトにのみフラグを設定します。 指定されたプロジェクトが削除されると、分岐プロジェクトは孤立します。
TFSDeleteProject は、情報とコア データ、ビルド定義、ビルド エージェント、プロジェクトに関連付けられているテスト結果など、ビルド データを直ちに削除します。 このツールでは、ビルドの格納場所は削除されません。
同じビルドドロップ場所を使用するプロジェクトを作成する前に、古いプロジェクトのビルドドロップの場所を削除する必要はありません。
指定されたプロジェクトに大量のビルド データが含まれる場合、タイムアウト期間内に削除が完了しないことがあります。
この問題を回避するには、「Time-Out 期間を増やす」を参照し、TFSDeleteProject をもう一度実行します。
TFSDeleteProject は、指定したプロジェクトに属する作業項目と作業項目フィールドを直ちに削除し、共有されていないすべてのメタデータを削除します。
指定されたプロジェクトに大量の作業項目データが含まれる場合、タイムアウト期間内に削除が完了しないことがあります。
この問題を解決するには、「Time-Out 期間を増やす」を参照し、TFSDeleteProject をもう一度実行します。
フェーズ 2: TFSDeleteProject によってプロジェクト Web サイトが削除される
2 番目のフェーズでは、TFSDeleteProject によって次のデータが削除されます。
重要
これらの手順は、完了までに時間がかかる場合があり、その間サーバーのパフォーマンスが低下する可能性があります。
- TFSDeleteProject Reporting Services API を使用して、Reporting Servicesをホストするサーバー上のレポートを削除します。
- TFSDeleteProject SharePoint 製品をホストするサーバーからプロジェクト ポータル Web サイトを削除します。
この手順は、プロジェクトがサイトを所有しており、サイトの削除がコマンド ラインで除外されない場合のみ発生します (複数のプロジェクトが 1 つのサイトを指している可能性がありますが、レポート/ダッシュボードがこのプロジェクトを既定で使用している所有者はそのうちの 1 つだけであると考えてください)。
注意
プロジェクトを削除する前に、ポータルの設定を確認することで、Reporting Servicesと SharePoint 製品が正しいプロジェクト URL を使用していることを確認できます。 詳細については、「 プロジェクト ポータルの追加」を参照してください。
TFSDeleteProject が上記のすべてのデータ要素を正常に削除すると、メッセージ Done が返されます。
この結果を確認するには、「プロジェクト コンポーネントが削除されていることを確認する」を参照してください。
1 つ以上のコンポーネントが削除されない場合は、/force オプションを使用して TFSProjectDelete を再実行し、すべてのデータ要素を削除できない場合でも削除プロセスを続行できます。
このオプション TFSDeleteProject を使用すると、削除できないコンポーネントをスキップし、エラー メッセージを返し、次のコンポーネントを削除して、プロジェクトのメタデータとセキュリティ設定をそのまま残します。
削除されていない可能性があるデータ
TFSDeleteProject が正常に完了した後も、次のデータがデプロイに残ることがあります。
キューブ内のプロジェクト データ。
プロジェクト データは、キューブが再構築されるまでキューブに残ります。その時点で、ウェアハウス コントローラー サービスは、Azure DevOps データベースから削除されたすべての履歴ビルド データを削除します。
ドロップ ファイルとフォルダーをビルドします。
ビルド バイナリ、ビルド ログ ファイル、およびテスト結果を含むログ ファイルは、ビルド処理中に発行されます。
これらのファイルの場所は削除されません。 それらのファイルを削除する場合は、手動で削除する必要があります。
共有される作業項目追跡メタデータ。
TFSDeleteProject では、プロジェクト間で共有される作業項目追跡のメタデータは削除されません。
共有コードを含むバージョン コントロール シェルブセット。
複数のプロジェクトのシェルブセットにコードがある場合、バージョン コントロール シェルブセットは削除されません。
プロジェクトの削除を確認する
プロジェクトノードがチーム エクスプローラーに表示されなくなり、プロジェクト ポータルの Web サイトとレポート フォルダーが存在しなくなったことを確認することで、プロジェクトの削除が成功したことを確認できます。
チーム エクスプローラーを開き、プロジェクトがプロジェクト ノードとして表示されないことを確認します。
Internet Explorer を開き、プロジェクト ポータル Web サイトの URL を入力します。 サイトが既に存在していないことを確認します。
Internet Explorer の [アドレス] ボックスに、次のいずれかの URL の形式を使用して、Reporting Services Web サイトの URL を入力します。
http://ReportingServices/Reports
http://ReportingServices/Reports_TFSInstance
レポート マネージャーで、[詳細の表示] をクリックします。
削除されたプロジェクトのフォルダーが表示されなくなったことを確認します。
ルート フォルダー TfsReports を選択し、プロジェクト コレクションの という名前のフォルダーを選択します。
削除されたプロジェクトの名前が付いたフォルダーがなくなります。
レポートまたは Web サイトが残っている場合、次の手順を参照してください。
プロジェクトの部分的な削除後に残りのコンポーネントを削除する
プロジェクトを削除した後もプロジェクト ポータルの Web サイトとレポート フォルダーが残っている場合は、サイトとフォルダーを手動で削除します。
削除したプロジェクトのReporting Servicesをホストするサーバーにログオンします。
Internet Explorer を開き、[アドレス] ボックスに、次のいずれかの URL の形式を使用して Reporting Services Web サイトの URL を入力します。
http://localhost/Reports
http://localhost/Reports_TFSInstance
レポート マネージャーで、[詳細の表示] をクリックします。
ルート フォルダー TfsReports を選択し、プロジェクト コレクションの という名前のフォルダーを選択します。
削除されたプロジェクトの [チェック] ボックスを選択します。
[削除] をクリックします。
[OK] を選択して、プロジェクトのレポート フォルダーを削除することを確認します。
削除されたプロジェクトのプロジェクト ポータル Web サイトを削除するには、Microsoft Web サイトの次のページを参照してください。
サイトの作成、編集、削除Windows SharePoint Services。
タイムアウト期間を増やす
既定では、コンポーネントを削除するために TFSDeleteProject コマンドが発行する各 Web サービス呼び出しは、10 分以内に完了する必要があります。 6 つの呼び出しがある場合、プロセスは最大 1 時間かかる可能性があります。 大量のデータに関連付けられているプロジェクトを削除する場合は、このタイムアウト期間を一時的に増やすことができます。
注意
タイムアウト期間を延長すると、変更がすべての Web サービスの呼び出しに適用されます。 通常は、タイムアウト期間を 10 分以内に維持して、Web サービスの呼び出しによりサーバーのパフォーマンスが低下したり、ユーザーが長時間ユーザー インターフェイスを使用できなくなることがないようにしてください。 このため、プロジェクトが正常に削除されたら、タイムアウト期間を 10 分に戻す必要があります。
前提条件
これらの手順を完了するには、アプリケーション層サーバー上で Windows 管理者である必要があります。
重要
コンピューターのレジストリを誤って変更すると、コンピューターが不安定になる場合があります。 レジストリに詳しくない場合は、エントリを追加または削除したり、なんらかの方法でレジストリに変更を加えたりしないようにしてください。
アプリケーション層サーバーにログオンします。
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。「regedit」と入力し、[OK] をクリックします。
ブラウザー ウィンドウで、[HKEY_ LOCAL_MACHINE] を展開します。
- サーバーで 32 ビット オペレーティング システムが実行されている場合は、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings を展開します。
- サーバーで 64 ビット オペレーティング システムが実行されている場合は、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings を展開します。
TeamFoundation\RequestSettings キーが存在しない場合、次の手順に従って作成します。
- [TeamFoundation] のコンテキスト メニューを開き、[新規] をポイントして、[キー] をクリックします。
- キーに「RequestSettings」という名前を付けます。
- [RequestSettings] のコンテキスト メニューを開き、[新規] をポイントして、[DWORD 値] をクリックします。
- 新しい値に「DefaultTimeout」という名前を付けます。
[DefaultTimeout] のコンテキスト メニューを開き、[変更] をクリックします。
[値のデータ] に、タイムアウト期間をミリ秒単位で入力し、[10 進] をクリックします。
たとえば、タイムアウト期間を 30 分に延長するには、「1800000」と入力します。 タイムアウト期間を 10 分に戻すには、「600000」と入力します。
[OK] をクリックします。
[ファイル] メニューの [終了] をクリックします。
例
次のコマンドは、プロジェクト コレクション Collection1 の Azure DevOps Server AdventureWorks1 サーバー上のプロジェクト StoreFront に関連付けられているすべてのコンポーネントを Team エクスプローラーから削除します。
TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront