Skip to content

Commit c0eee5f

Browse files
Merge pull request #1657 from DustinCampbell/project-json-warning
Add nag message when project.json projects are opened
2 parents 762d020 + d9e1fd4 commit c0eee5f

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export function activate(context: vscode.ExtensionContext): any {
3232
ensureRuntimeDependencies(extension, logger, reporter)
3333
.then((success : boolean) => {
3434
// activate language services
35-
OmniSharp.activate(context, reporter);
35+
OmniSharp.activate(context, reporter, _channel);
3636

3737
// register JSON completion & hover providers for project.json
3838
context.subscriptions.push(addJSONProviders());

src/omnisharp/extension.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { addAssetsIfNecessary, AddAssetResult } from '../assets';
3030
import { sum, safeLength } from '../common';
3131
import * as utils from './utils';
3232

33-
export function activate(context: vscode.ExtensionContext, reporter: TelemetryReporter) {
33+
export function activate(context: vscode.ExtensionContext, reporter: TelemetryReporter, channel: vscode.OutputChannel) {
3434
const documentSelector: vscode.DocumentSelector = {
3535
language: 'csharp',
3636
scheme: 'file' // only files from disk
@@ -88,6 +88,25 @@ export function activate(context: vscode.ExtensionContext, reporter: TelemetryRe
8888
}));
8989
}
9090

91+
// After server is started (and projects are loaded), check to see if there are
92+
// any project.json projects. If so, notify the user about migration.
93+
disposables.push(server.onServerStart(() => {
94+
utils.requestWorkspaceInformation(server)
95+
.then(workspaceInfo => {
96+
if (workspaceInfo.DotNet && workspaceInfo.DotNet.Projects.length > 0) {
97+
const shortMessage = 'project.json is no longer a supported project format for .NET Core applications.';
98+
const detailedMessage = "Warning: project.json is no longer a supported project format for .NET Core applications. Update to the latest version of .NET Core (https://aka.ms/netcoredownload) and use 'dotnet migrate' to upgrade your project (see https://aka.ms/netcoremigrate for details).";
99+
const moreDetailItem: vscode.MessageItem = { title: 'More Detail' };
100+
101+
vscode.window.showWarningMessage(shortMessage, moreDetailItem)
102+
.then(item => {
103+
channel.appendLine(detailedMessage);
104+
channel.show();
105+
});
106+
}
107+
});
108+
}));
109+
91110
// Send telemetry about the sorts of projects the server was started on.
92111
disposables.push(server.onServerStart(() => {
93112
let measures: { [key: string]: number } = {};

0 commit comments

Comments
 (0)