diff --git a/src/vs/workbench/parts/extensions/common/extensions.ts b/src/vs/workbench/parts/extensions/common/extensions.ts index 5027330fa90..11804925594 100644 --- a/src/vs/workbench/parts/extensions/common/extensions.ts +++ b/src/vs/workbench/parts/extensions/common/extensions.ts @@ -20,6 +20,7 @@ export interface IExtensionManifest { export interface IGalleryInformation { galleryApiUrl: string; id: string; + downloadUrl: string; publisherId: string; publisherDisplayName: string; date: string; diff --git a/src/vs/workbench/parts/extensions/node/extensionsService.ts b/src/vs/workbench/parts/extensions/node/extensionsService.ts index db6a2b660a1..defd83db302 100644 --- a/src/vs/workbench/parts/extensions/node/extensionsService.ts +++ b/src/vs/workbench/parts/extensions/node/extensionsService.ts @@ -117,7 +117,7 @@ export class ExtensionsService implements IExtensionsService { return TPromise.wrapError(new Error(nls.localize('missingGalleryInformation', "Gallery information is missing"))); } - const url = `${ galleryInformation.galleryApiUrl }/publisher/${ extension.publisher }/extension/${ extension.name }/latest/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage?install=true`; + const url = galleryInformation.downloadUrl; const zipPath = path.join(tmpdir(), galleryInformation.id); const extensionPath = path.join(this.extensionsPath, `${ extension.publisher }.${ extension.name }`); const manifestPath = path.join(extensionPath, 'package.json'); diff --git a/src/vs/workbench/parts/extensions/node/vsoGalleryService.ts b/src/vs/workbench/parts/extensions/node/vsoGalleryService.ts index fae37240bbd..dd107ccc3f6 100644 --- a/src/vs/workbench/parts/extensions/node/vsoGalleryService.ts +++ b/src/vs/workbench/parts/extensions/node/vsoGalleryService.ts @@ -21,6 +21,7 @@ export interface IGalleryExtensionFile { export interface IGalleryExtensionVersion { version: string; lastUpdated: string; + assetUri: string; files: IGalleryExtensionFile[]; } @@ -68,7 +69,7 @@ export class GalleryService implements IGalleryService { value: 'vscode' }] }], - flags: 0x1 | 0x2 | 0x4 | 0x8 | 0x10 + flags: 0x1 | 0x4 | 0x80 }); const request = { @@ -94,6 +95,7 @@ export class GalleryService implements IGalleryService { galleryInformation: { galleryApiUrl: this.extensionsGalleryUrl, id: extension.extensionId, + downloadUrl: `${ extension.versions[0].assetUri }/Microsoft.VisualStudio.Services.VSIXPackage?install=true`, publisherId: extension.publisher.publisherId, publisherDisplayName: extension.publisher.displayName, date: extension.versions[0].lastUpdated