Azure DevOps サービス
拡張機能の静的コンテンツ (HTML、CSS、JavaScript ファイルなど) を、独自のサービス、Azure や Heroku などのサード パーティのホスティング サービス、または Azure DevOps Services で直接ホストすることを選択します。
Important
拡張機能で TFS データベースにカスタム テーブルを作成する必要がある場合は、'dbo' スキーマを使用して作成しないでください。 代わりに、カスタム テーブルを別のスキーマで作成する必要があります。 たとえば、'YourExtensionName' などです。
ヒント
テーマ設定や VSS からの移行など、最新の拡張機能開発ガイダンスについて説明します。SDK については、 Azure DevOps Extension SDK 開発者ポータルを参照してください。
Azure DevOps Services でのホスト
このモデルでは、静的コンテンツは拡張機能の .vsix ファイルと共にパッケージ化され、 https://publisher.gallerycdn.vsassets.ioのパブリック エンドポイントから提供されます。
拡張機能の静的コンテンツは、Azure DevOps Services のデータを強化または装飾する場合に便利です。 拡張機能パブでは、拡張機能のホスティング サービスを設定、管理、または支払う必要はありません (拡張機能の発行元)。
Steps
- 拡張マニフェスト ファイルで、
filesプロパティを使用して含めるファイルを指定します。{ "files": [ { "path": "scripts", "addressable": true }, { "path": "images/extra/icon1.png", "addressable": true } ] } - 拡張機能マニフェストから
baseUriプロパティ (設定されている場合) を削除します。 - 拡張機能をパッケージ化する (手順)
- 拡張機能を発行する (または再発行する) 手順
次の点に注意してください。
-
path属性で指定される値には、フォルダーまたは個々のファイルを指定できます。 フォルダーの場合は、フォルダー全体 (およびサブフォルダー) が含まれます。 -
addressable属性は重要であり、ファイルの URL をアドレス指定できるように Visual Studio Codespaces に指示します。 - すべての
addressableアセット リクエストでは、大文字と小文字が区別されます。 アセットの要求に実際にアップロードされた資産とは異なるケースがある場合は、HTTP 404 (見つかりません) エラーが発生します。 - baseUri を指定しないか、空の値を設定すると、Visual Studio Codespaces は実行時に、静的コンテンツが Azure DevOps Services によってホストされているかのようにベース URI を計算するように指示します。
サード パーティのサービスでホストする
このモデルでは、静的コンテンツは独自のサービスから提供され、拡張機能の .vsix ファイルには含まれません。
Steps
- 拡張機能マニフェストで
baseUriプロパティを設定します。たとえば、https://myservice.net/extensionの値と次のハブコントリビューションを想定します。
"baseUri": "https://myservice.net/extension",
"contributions": [
{
"id": "Fabrikam.HelloWorld",
"type": "ms.vss-web.hub",
"targets": [
"ms.vss-work-web.work-hub-group"
],
"properties": {
"name": "Hello",
"uri": "hello-world.html"
}
}
]
Azure DevOps Services は、 https://myservice.net/extension/hello-world.htmlでレンダリングされるときに、このハブのコンテンツを読み込みます。