Skip to content

Commit a296353

Browse files
author
Andrew Hall
authored
Download razor telemetry nupkg and include in vsix (#7236)
Updates to dev.azure.com/dnceng/internal/_build/results?buildId=2475112&view=results to have correct nuget packaging.
1 parent fa53d6b commit a296353

File tree

9 files changed

+29
-220
lines changed

9 files changed

+29
-220
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ out
1212
.razor/
1313
.razoromnisharp/
1414
.razortelemetry/
15+
.razorDevKit/
1516
.vscode-test/
1617
dist/
1718
*.razor.json

.vscodeignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
!.roslynDevKit/**
66
!.omnisharp/**
77
!.razor/**
8+
!.razorDevKit/**
89
!.razoromnisharp/**
9-
!.razortelemetry/**
1010
.rpt2_cache/**
1111
.github/**
1212
.vscode/**

package.json

Lines changed: 1 addition & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@
3939
"defaults": {
4040
"roslyn": "4.11.0-3.24313.9",
4141
"omniSharp": "1.39.11",
42-
"razor": "9.0.0-preview.24311.4",
42+
"razor": "9.0.0-preview.24316.1",
4343
"razorOmnisharp": "7.0.0-preview.23363.1",
44-
"razorTelemetry": "7.0.0-preview.24178.4",
4544
"xamlTools": "17.11.35013.26"
4645
},
4746
"main": "./dist/extension",
@@ -687,123 +686,6 @@
687686
"binaries": [
688687
"./rzls"
689688
]
690-
},
691-
{
692-
"id": "RazorTelemetry",
693-
"description": "Razor Language Server Telemetry (Windows / x64)",
694-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/5a98d8f4e481dbb7ae3cdb3695b75c46/devkittelemetry-win-x64-7.0.0-preview.24178.4.zip",
695-
"installPath": ".razortelemetry",
696-
"platforms": [
697-
"win32"
698-
],
699-
"architectures": [
700-
"x86_64"
701-
],
702-
"integrity": "2C575C90AFFD159CD3A0F96AB3C74C939F6E774E409816C802763383782137EC"
703-
},
704-
{
705-
"id": "RazorTelemetry",
706-
"description": "Razor Language Server Telemetry (Windows / ARM64)",
707-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/4f16ff826fedd33ad80d265c5409588b/devkittelemetry-win-arm64-7.0.0-preview.24178.4.zip",
708-
"installPath": ".razortelemetry",
709-
"platforms": [
710-
"win32"
711-
],
712-
"architectures": [
713-
"arm64"
714-
],
715-
"integrity": "9B0787738031C6FA1F0CF50C888926949ED08ECE17EDA006F31422E0BE8EAAD1"
716-
},
717-
{
718-
"id": "RazorTelemetry",
719-
"description": "Razor Language Server Telemetry (Linux / x64)",
720-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/f58cf629939f0df77d142be881f9e233/devkittelemetry-linux-x64-7.0.0-preview.24178.4.zip",
721-
"installPath": ".razortelemetry",
722-
"platforms": [
723-
"linux"
724-
],
725-
"architectures": [
726-
"x86_64"
727-
],
728-
"integrity": "E7607984AB18D29CF3BA71D22D70A8952896657FD29D7892926EA9A73CCC87F3"
729-
},
730-
{
731-
"id": "RazorTelemetry",
732-
"description": "Razor Language Server Telemetry (Linux ARM64)",
733-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/704e369c5905f9ece819ebce77fb78d8/devkittelemetry-linux-arm64-7.0.0-preview.24178.4.zip",
734-
"installPath": ".razortelemetry",
735-
"platforms": [
736-
"linux"
737-
],
738-
"architectures": [
739-
"arm64"
740-
],
741-
"integrity": "42E2263FAA4A13307899DA520C488082E241FFDE6A61A5639828A171C8423BF5"
742-
},
743-
{
744-
"id": "RazorTelemetry",
745-
"description": "Razor Language Server Telemetry (Linux musl / x64)",
746-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/c75e84ff813be5c9833d96dc2066a364/devkittelemetry-linux-musl-x64-7.0.0-preview.24178.4.zip",
747-
"installPath": ".razortelemetry",
748-
"platforms": [
749-
"linux-musl"
750-
],
751-
"architectures": [
752-
"x86_64"
753-
],
754-
"integrity": "C6C737B0707415C8EE9DB185C8A776FAB50BF1F8250C9EF8D756283ADA5FE518"
755-
},
756-
{
757-
"id": "RazorTelemetry",
758-
"description": "Razor Language Server Telemetry (Linux musl ARM64)",
759-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/4049a66147717a53860bbc969bf32faa/devkittelemetry-linux-musl-arm64-7.0.0-preview.24178.4.zip",
760-
"installPath": ".razortelemetry",
761-
"platforms": [
762-
"linux-musl"
763-
],
764-
"architectures": [
765-
"arm64"
766-
],
767-
"integrity": "14421ED81E82094CA13498B6B338950EDA605189A3FD91211EDCE554AB330070"
768-
},
769-
{
770-
"id": "RazorTelemetry",
771-
"description": "Razor Language Server Telemetry (macOS / x64)",
772-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/36545ba0998f1fc380e877e38b2f35f1/devkittelemetry-osx-x64-7.0.0-preview.24178.4.zip",
773-
"installPath": ".razortelemetry",
774-
"platforms": [
775-
"darwin"
776-
],
777-
"architectures": [
778-
"x86_64"
779-
],
780-
"integrity": "D081FA25B5B0DF99175690E6F903720F10ADF9AD0CAC684C29715B841C6D6BB3"
781-
},
782-
{
783-
"id": "RazorTelemetry",
784-
"description": "Razor Language Server Telemetry (macOS ARM64)",
785-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/1c912419ea45c8d95cfa28a8a04640dc/devkittelemetry-osx-arm64-7.0.0-preview.24178.4.zip",
786-
"installPath": ".razortelemetry",
787-
"platforms": [
788-
"darwin"
789-
],
790-
"architectures": [
791-
"arm64"
792-
],
793-
"integrity": "28D9F1E00151773078A26BDB9917CE6823E9D5D76799788238FE4AE7644A1493"
794-
},
795-
{
796-
"id": "RazorTelemetry",
797-
"description": "Razor Language Server Telemetry (Platform Agnostic)",
798-
"url": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/0a32698e8ba1ab93489d79f34f8ae8d0/devkittelemetry-platformagnostic-7.0.0-preview.24178.4.zip",
799-
"installPath": ".razortelemetry",
800-
"platforms": [
801-
"netural"
802-
],
803-
"architectures": [
804-
"neutral"
805-
],
806-
"integrity": "3FDF8F19E66C85F06692BE2AA5803437C387EB65C6262030CD301388C3EB6261"
807689
}
808690
],
809691
"engines": {

src/lsptoolshost/builtInComponents.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,14 @@ export const componentInfo: { [key: string]: ComponentInfo } = {
2727
'Microsoft.VisualStudio.DesignTools.CodeAnalysis.Diagnostics.dll',
2828
],
2929
},
30+
razorDevKit: {
31+
defaultFolderName: '.razorDevKit',
32+
optionName: 'razorDevKit',
33+
componentDllPaths: ['Microsoft.VisualStudio.DevKit.Razor.dll'],
34+
},
3035
};
3136

32-
export function getComponentPaths(componentName: string, options: LanguageServerOptions): string[] {
37+
export function getComponentPaths(componentName: string, options: LanguageServerOptions | undefined): string[] {
3338
const component = componentInfo[componentName];
3439
const baseFolder = getComponentFolderPath(component, options);
3540
const paths = component.componentDllPaths.map((dllPath) => path.join(baseFolder, dllPath));
@@ -42,13 +47,13 @@ export function getComponentPaths(componentName: string, options: LanguageServer
4247
return paths;
4348
}
4449

45-
export function getComponentFolder(componentName: string, options: LanguageServerOptions): string {
50+
export function getComponentFolder(componentName: string, options: LanguageServerOptions | undefined): string {
4651
const component = componentInfo[componentName];
4752
return getComponentFolderPath(component, options);
4853
}
4954

50-
function getComponentFolderPath(component: ComponentInfo, options: LanguageServerOptions): string {
51-
if (options.componentPaths) {
55+
function getComponentFolderPath(component: ComponentInfo, options: LanguageServerOptions | undefined): string {
56+
if (options?.componentPaths) {
5257
const optionValue = options.componentPaths[component.optionName];
5358
if (optionValue) {
5459
return optionValue;

src/main.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ import { registerOmnisharpOptionChanges } from './omnisharp/omnisharpOptionChang
5454
import { RoslynLanguageServerEvents } from './lsptoolshost/languageServerEvents';
5555
import { ServerStateChange } from './lsptoolshost/serverStateChange';
5656
import { SolutionSnapshotProvider } from './lsptoolshost/services/solutionSnapshotProvider';
57-
import { RazorTelemetryDownloader } from './razor/razorTelemetryDownloader';
5857
import { commonOptions, languageServerOptions, omnisharpOptions, razorOptions } from './shared/options';
5958
import { BuildResultDiagnostics } from './lsptoolshost/services/buildResultReporterService';
6059
import { debugSessionTracker } from './coreclrDebug/provisionalDebugSessionTracker';
@@ -130,21 +129,6 @@ export async function activate(
130129
let projectInitializationCompletePromise: Promise<void> | undefined = undefined;
131130

132131
if (!useOmnisharpServer) {
133-
// Download Razor server telemetry bits if DevKit is installed.
134-
if (csharpDevkitExtension && vscode.env.isTelemetryEnabled) {
135-
const razorTelemetryDownloader = new RazorTelemetryDownloader(
136-
networkSettingsProvider,
137-
eventStream,
138-
context.extension.packageJSON,
139-
platformInfo,
140-
context.extension.extensionPath
141-
);
142-
143-
await razorTelemetryDownloader.DownloadAndInstallRazorTelemetry(
144-
context.extension.packageJSON.defaults.razorTelemetry
145-
);
146-
}
147-
148132
// Activate Razor. Needs to be activated before Roslyn so commands are registered in the correct order.
149133
// Otherwise, if Roslyn starts up first, they could execute commands that don't yet exist on Razor's end.
150134
//

src/razor/razorTelemetryDownloader.ts

Lines changed: 0 additions & 71 deletions
This file was deleted.

src/razor/src/extension.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import * as path from 'path';
76
import * as vscode from 'vscode';
87
import * as vscodeapi from 'vscode';
9-
import * as util from '../../common';
108
import { ExtensionContext } from 'vscode';
119
import { BlazorDebugConfigurationProvider } from './blazorDebug/blazorDebugConfigurationProvider';
1210
import { CodeActionsHandler } from './codeActions/codeActionsHandler';
@@ -55,6 +53,7 @@ import { resolveRazorLanguageServerOptions } from './razorLanguageServerOptionsR
5553
import { RazorFormatNewFileHandler } from './formatNewFile/razorFormatNewFileHandler';
5654
import { InlayHintHandler } from './inlayHint/inlayHintHandler';
5755
import { InlayHintResolveHandler } from './inlayHint/inlayHintResolveHandler';
56+
import { getComponentPaths } from '../../lsptoolshost/builtInComponents';
5857

5958
// We specifically need to take a reference to a particular instance of the vscode namespace,
6059
// otherwise providers attempt to operate on the null extension.
@@ -99,13 +98,11 @@ export async function activate(
9998
await setupDevKitEnvironment(dotnetInfo.env, csharpDevkitExtension, logger);
10099

101100
if (vscode.env.isTelemetryEnabled) {
102-
const telemetryExtensionPath = path.join(
103-
util.getExtensionPath(),
104-
'.razortelemetry',
105-
'Microsoft.VisualStudio.DevKit.Razor.dll'
106-
);
107-
if (await util.fileExists(telemetryExtensionPath)) {
108-
telemetryExtensionDllPath = telemetryExtensionPath;
101+
const razorComponentPaths = getComponentPaths('razorDevKit', undefined);
102+
if (razorComponentPaths.length !== 1) {
103+
logger.logError('Failed to find Razor DevKit telemetry extension path.', undefined);
104+
} else {
105+
telemetryExtensionDllPath = razorComponentPaths[0];
109106
}
110107
}
111108
}

tasks/offlinePackagingTasks.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {
2626
devKitDependenciesDirectory,
2727
xamlToolsDirectory,
2828
razorLanguageServerDirectory,
29+
razorDevKitDirectory,
2930
} from '../tasks/projectPaths';
3031
import { getPackageJSON } from '../tasks/packageJson';
3132
import { createPackageAsync } from '../tasks/vsceTasks';
@@ -91,6 +92,12 @@ export const allNugetPackages: { [key: string]: NugetPackageInfo } = {
9192
getPackageContentPath: (platformInfo) => path.join('content', 'LanguageServer', platformInfo?.rid ?? 'neutral'),
9293
vsixOutputPath: razorLanguageServerDirectory,
9394
},
95+
razorDevKit: {
96+
getPackageName: (_platformInfo) => 'Microsoft.VisualStudio.DevKit.Razor',
97+
packageJsonName: 'razor',
98+
getPackageContentPath: (_platformInfo) => 'content',
99+
vsixOutputPath: razorDevKitDirectory,
100+
},
94101
};
95102

96103
const vsixTasks: string[] = [];
@@ -175,6 +182,9 @@ gulp.task(
175182
// Run the fetch of all packages, and then also installDependencies after
176183
gulp.series(async () => {
177184
await updateNugetPackageVersion(allNugetPackages.razor);
185+
186+
// Also pull in the Razor DevKit dependencies nuget package.
187+
await acquireNugetPackage(allNugetPackages.razorDevKit, undefined, getPackageJSON(), true);
178188
}, 'installDependencies')
179189
);
180190

tasks/projectPaths.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const languageServerDirectory = path.join(rootPath, '.roslyn');
1919
export const devKitDependenciesDirectory = path.join(rootPath, componentInfo.roslynDevKit.defaultFolderName);
2020
export const xamlToolsDirectory = path.join(rootPath, componentInfo.xamlTools.defaultFolderName);
2121
export const razorLanguageServerDirectory = path.join(rootPath, '.razor');
22+
export const razorDevKitDirectory = path.join(rootPath, componentInfo.razorDevKit.defaultFolderName);
2223

2324
export const codeExtensionPath = commandLineOptions.codeExtensionPath || rootPath;
2425

0 commit comments

Comments
 (0)