in src/vsCodeConfig/verifyTargetFramework.ts [14:59]
export async function verifyTargetFramework(projectLanguage: ProjectLanguage, folder: vscode.WorkspaceFolder, projectPath: string, context: IActionContext): Promise<void> {
const settingKey: string = 'showTargetFrameworkWarning';
if (getWorkspaceSetting<boolean>(settingKey)) {
const projFiles: dotnetUtils.ProjectFile[] = await dotnetUtils.getProjFiles(context, projectLanguage, projectPath);
if (projFiles.length === 1) {
let targetFramework: string;
try {
targetFramework = await dotnetUtils.getTargetFramework(projFiles[0]);
} catch {
// ignore
return;
}
const tasksResult: IVerifyFrameworkResult | undefined = verifyTasksFramework(folder, targetFramework);
const settingsResult: IVerifyFrameworkResult | undefined = verifySettingsFramework(folder.uri.fsPath, targetFramework);
const mismatchTargetFramework: string | undefined = (tasksResult && tasksResult.mismatchTargetFramework) || (settingsResult && settingsResult.mismatchTargetFramework);
if (mismatchTargetFramework) {
context.telemetry.properties.verifyConfigPrompt = 'updateTargetFramework';
// This won't handle the case where there are multiple different target frameworks, but it's good enough for the message
const message: string = localize('mismatchTargetFramework', 'The targetFramework "{0}" in your project file does not match the targetFramework "{1}" in your VS Code config.', targetFramework, mismatchTargetFramework);
const update: vscode.MessageItem = { title: localize('updateTargetFramework', 'Update VS Code config') };
const result: vscode.MessageItem = await context.ui.showWarningMessage(message, update, DialogResponses.dontWarnAgain);
if (result === DialogResponses.dontWarnAgain) {
context.telemetry.properties.verifyConfigResult = 'dontWarnAgain';
await updateWorkspaceSetting(settingKey, false, folder);
} else if (result === update) {
context.telemetry.properties.verifyConfigResult = 'update';
if (tasksResult) {
await tasksResult.update();
}
if (settingsResult) {
await settingsResult.update();
}
}
}
}
} else {
context.telemetry.properties.verifyConfigResult = 'suppressed';
}
}