Skip to content

Commit 4651173

Browse files
Merge pull request #503 from OmniSharp/master
Merge master into release
2 parents 3353b69 + e358bdc commit 4651173

File tree

10 files changed

+457
-64
lines changed

10 files changed

+457
-64
lines changed

README.md

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ Welcome to the C# extension for Visual Studio Code! This preview provides the fo
1313

1414
The C# extension is powered by [OmniSharp](https://github.com/OmniSharp/omnisharp-roslyn).
1515

16-
### **Important!** Breaking Changes as of 1.0.10
16+
### **Important!** Breaking Changes as of 1.2
1717

18-
* The C# extension now only supports [.NET Core RC2](https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-net-core-rc2/). It no longer supports .NET Core RC1 or ASP .NET 5 RC1.
18+
* The C# extension now only supports .NET Core 1.0. Please upgrade any RC1 or RC2 projects to the 1.0.0 release build.
1919
* **Support for .csproj projects is partially functional on OS X and Linux.** This will impact anyone doing .csproj development on OS X or Linux (e.g. Unity, Xamarin, etc.). We are working to address this in the near future. However, for now, you can use the [Legacy C# Support extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.omnisharp).
2020

2121
### Found a Bug?
@@ -24,17 +24,12 @@ Please file any issues at https://github.com/OmniSharp/omnisharp-vscode/issues.
2424
### Debugging
2525
The C# extension now supports basic debugging capabilities! See http://aka.ms/vscclrdebugger for details.
2626

27-
### What's new in C# extension version 1.1
28-
29-
* Preliminary support for `dotnet test`
30-
* Fix for OmniSharp installation problems on networks with an http proxy
31-
* Debugger support for an external console
32-
* Debugger support for environment variables
33-
* Support for debugging .NET Core 1.0.0 post RC2 builds
34-
* Automatic web vs. console debugger configuration detection
35-
* Detach support
36-
* Fix expression evaluation errors when referencing assemblies which aren't currently loaded
37-
* Fix expression evaluation on Windows 7
27+
### What's new in C# extension version 1.2
28+
29+
* Adds debugger support for new Linux versions: Ubuntu 16.04, Fedora 23, openSUSE 13.2, and Oracle Linux 7.1
30+
* Enhanced debug console output: module loads are now output, and there are launch.json options for controlling what is output
31+
* Source file checksum support for breakpoints. This ensures that the debugger only sets breakpoints in code that exactly matches the open document.
32+
* Support for editing the value of variables in the watch and locals window (requires VS Code 1.3)
3833

3934
### Development
4035

coreclr-debug/NuGet.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
55
<clear />
66
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
7+
<!-- This dependency is not present in the release branch -->
8+
<add key="coreclrdebug" value="https://www.myget.org/F/coreclr-debug/api/v3/index.json" />
79
</packageSources>
810
</configuration>

debugger.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This page gives you detailed instructions on how to debug code running under .NE
55
File bugs and feature requests [here](https://github.com/OmniSharp/omnisharp-vscode/issues) and [join our insiders group](http://landinghub.visualstudio.com/dotnetcoreinsiders) to help us build great tooling for .NET Core.
66

77
####Requirements
8-
* Requires .NET Core RC2 (will not work with earlier versions)
8+
* Requires .NET Core 1.0 RC2 or newer (will not work with earlier versions)
99
* X64 only
1010
* Supports OSX, Ubuntu 14.04, Red Hat Enterprise Linux 7.2, Debian 8.2, Centos 7.1, and Windows 7+
1111

@@ -26,7 +26,7 @@ Install the .NET Core command line tools (CLI) by following the installation par
2626
##### 3: Install C# Extension for VS Code
2727
Open the command palette in VS Code (F1) and type "ext install C#" to trigger the installation of the extension. VS Code will show a message that the extension has been installed and it will restart.
2828

29-
If you have previously installed the C# extension, make sure that you have version 1.0.0-rc2 or newer. You can check this by opening the command palette (F1) and running 'Extensions: Show Installed Extensions'.
29+
If you have previously installed the C# extension, make sure that you have version 1.1.6 or newer. You can check this by opening the command palette (F1) and running 'Extensions: Show Installed Extensions'.
3030

3131
##### 4: Wait for download of platform-specific files
3232
The first time that C# code is opened in VS Code, the extension will download the platform-specific files needed for debugging and editing. Debugging and editor features will not work until these steps finish.
@@ -49,20 +49,22 @@ You can also find some example projects on https://github.com/aspnet/cli-samples
4949
##### 2: Open the directory in VS Code
5050
Go to File->Open and open the directory in Visual Studio Code. If this is the first time that the C# extension has been activated, it will now download additional platform-specific dependencies.
5151

52-
**Troubleshooting 'Error while installing .NET Core Debugger':** If the debugger is failing to download its platform-specific dependencies, first verify that you have the RC2 build of the .NET CLI installed, and it is functioning. You can check this by starting a bash/command prompt and running 'dotnet --info'.
52+
**Troubleshooting 'Error while installing .NET Core Debugger':** If the debugger is failing to download its platform-specific dependencies, first verify that you have the 1.0.0-preview1-002702 or newer build of the .NET CLI installed, and it is functioning. You can check this by starting a bash/command prompt and running 'dotnet --info'.
5353

5454
If the CLI is installed, here are a few additional suggestions:
5555

56-
* If clicking on 'View Log' doesn't show a log this means that running the 'dotnet --info' command failed. If it succeeds in bash/command prompt, but fails from VS Code, this likely means that your computer once had an older build of .NET CLI installed, and there are still remnants of it which cause VS Code and other processes besides bash to use the older version instead of the current version. You can try to clean your computer using the uninstall suggestions from http://dotnet.github.io/getting-started/.
56+
* If clicking on 'View Log' doesn't show a log this means that running the 'dotnet --info' command failed. If it succeeds in bash/command prompt, but fails from VS Code, this likely means that your computer once had an older build of .NET CLI installed, and there are still remnants of it which cause VS Code and other processes besides bash to use the older version instead of the current version. You can resolve this issue by uninstalling the .NET Core CLI, and reinstalling the version you want (see below for macOS).
5757
* If 'dotnet restore' is failing, make sure you have an internet connection to nuget.org, and make sure that if additional NuGet.Config files are being used, they have valid content. The log will indicate what NuGet.Config files were used. Try removing the files other than the one coming from the extension itself.
5858

59+
MacOS .NET CLI Reinstall Instructions: macOS doesn't have uninstall for pkg files (see [known issue](https://github.com/dotnet/core/blob/master/cli/known-issues.md#uninstallingreinstalling-the-pkg-on-os-x)), one option is to remove the dotnet cli directory with `sudo rm -rf /usr/local/share/dotnet` and then install the pkg again.
60+
5961
##### 3: Add VS Code configuration files to the workspace
6062
VS Code needs to be configured so it understands how to build your project and debug it. For this there are two files which need to be added -- .vscode/tasks.json and .vscode/launch.json.
6163

6264
* Tasks.json is used to configure what command line command is executed to build your project, and launch.json configures the type of debugger you want to use, and what program should be run under that debugger.
6365
* Launch.json configures VS Code to run the build task from tasks.json so that your program is automatically up-to-date each time you go to debug it.
6466

65-
If you open the folder containing your project.json, the C# extension can automatically generate these files for you. When you open a project and the C# extension is installed, you should see the following prompt in VS Code:
67+
If you open the folder containing your project.json, the C# extension can automatically generate these files for you if you have a basic project. When you open a project and the C# extension is installed, you should see the following prompt in VS Code:
6668

6769
![Info: Required assets to build and debug are missing from your project. Add them? Yes | Close](https://raw.githubusercontent.com/wiki/OmniSharp/omnisharp-vscode/images/info-bar-add-required-assets.png)
6870

@@ -134,3 +136,7 @@ Environment variables may be passed to your program using this schema:
134136
The target process can optionally launch into a seperate console window. You will want this if your console app takes console input (ex: Console.ReadLine). This can be enabled with:
135137

136138
"externalConsole": true
139+
140+
#### Docker Support
141+
142+
Using Visual Studio Code and the C# extension it is also possible to debug your code running in a [Docker container](https://en.wikipedia.org/wiki/Docker_(software)). To do so, follow instructions to install and run [yo docker](https://github.com/Microsoft/generator-docker#generator-docker). This will add files to your project to build a container, and it will add a new debug launch configuration which will invoke a container build, and then debug your app in the container.

gulpfile.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,11 @@ gulp.task('package:offline', ['clean'], () => {
126126
packages.push({rid: 'osx.10.11-x64', omni: `omnisharp-${OmniSharpVersion}-osx-x64-netcoreapp1.0.tar.gz`});
127127
packages.push({rid: 'centos.7-x64', omni: `omnisharp-${OmniSharpVersion}-centos-x64-netcoreapp1.0.tar.gz`});
128128
packages.push({rid: 'debian.8-x64', omni: `omnisharp-${OmniSharpVersion}-debian-x64-netcoreapp1.0.tar.gz`});
129+
packages.push({rid: 'fedora.23-x64', omni: `omnisharp-${OmniSharpVersion}-fedora-x64-netcoreapp1.0.tar.gz`});
130+
packages.push({rid: 'opensuse.13.2-x64', omni: `omnisharp-${OmniSharpVersion}-opensuse-x64-netcoreapp1.0.tar.gz`});
129131
packages.push({rid: 'rhel.7.2-x64', omni: `omnisharp-${OmniSharpVersion}-rhel-x64-netcoreapp1.0.tar.gz`});
130-
packages.push({rid: 'ubuntu.14.04-x64', omni: `omnisharp-${OmniSharpVersion}-ubuntu-x64-netcoreapp1.0.tar.gz`});
132+
packages.push({rid: 'ubuntu.14.04-x64', omni: `omnisharp-${OmniSharpVersion}-ubuntu14-x64-netcoreapp1.0.tar.gz`});
133+
packages.push({rid: 'ubuntu.16.04-x64', omni: `omnisharp-${OmniSharpVersion}-ubuntu16-x64-netcoreapp1.0.tar.gz`});
131134

132135
var promise = Promise.resolve();
133136

package.json

Lines changed: 89 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "csharp",
33
"publisher": "ms-vscode",
4-
"version": "1.1.7",
4+
"version": "1.2.0",
55
"description": "C# for Visual Studio Code (powered by OmniSharp).",
66
"displayName": "C#",
77
"author": "Microsoft Corporation",
@@ -19,7 +19,7 @@
1919
],
2020
"main": "./out/omnisharpMain",
2121
"scripts": {
22-
"postinstall": "tsc"
22+
"postinstall": "node ./node_modules/vscode/bin/install && tsc"
2323
},
2424
"dependencies": {
2525
"decompress": "^4.0.0",
@@ -39,7 +39,7 @@
3939
"tslint": "^3.3.0",
4040
"tslint-microsoft-contrib": "^2.0.0",
4141
"typescript": "^1.7.3",
42-
"vscode": "^0.10.1",
42+
"vscode": "^0.11.3",
4343
"vsce": "^1.3.0"
4444
},
4545
"engines": {
@@ -52,6 +52,7 @@
5252
"onCommand:o.showOutput",
5353
"onCommand:dotnet.restore",
5454
"onCommand:csharp.downloadDebugger",
55+
"onCommand:csharp.listProcess",
5556
"workspaceContains:project.json"
5657
],
5758
"contributes": {
@@ -102,6 +103,11 @@
102103
"command": "csharp.downloadDebugger",
103104
"title": "Download .NET Core Debugger",
104105
"category": "Debug"
106+
},
107+
{
108+
"command": "csharp.listProcess",
109+
"title": "List process for attach",
110+
"category": "CSharp"
105111
}
106112
],
107113
"keybindings": [
@@ -143,6 +149,9 @@
143149
},
144150
"runtime": "node",
145151
"runtimeArgs": [],
152+
"variables": {
153+
"pickProcess": "csharp.listProcess"
154+
},
146155
"program": "./out/coreclr-debug/proxy.js",
147156
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
148157
"configurationAttributes": {
@@ -299,6 +308,44 @@
299308
"description": "Optional flag to require current source code to match the pdb.",
300309
"default": true
301310
},
311+
"logging": {
312+
"type": "object",
313+
"required": [],
314+
"default": {},
315+
"description": "Optional flags to determine what types of messages should be logged to the output window.",
316+
"properties": {
317+
"exceptions": {
318+
"type": "boolean",
319+
"description": "Optional flag to determine whether exception messages should be logged to the output window.",
320+
"default": true
321+
},
322+
"moduleLoad": {
323+
"type": "boolean",
324+
"description": "Optional flag to determine whether module load events should be logged to the output window.",
325+
"default": true
326+
},
327+
"programOutput": {
328+
"type": "boolean",
329+
"description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.",
330+
"default": true
331+
},
332+
"engineLogging": {
333+
"type": "boolean",
334+
"description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.",
335+
"default": false
336+
},
337+
"trace": {
338+
"type": "boolean",
339+
"description": "Optional flag to determine whether diagnostic adapter command tracing should be logged to the output window.",
340+
"default": false
341+
},
342+
"traceResponse": {
343+
"type": "boolean",
344+
"description": "Optional flag to determine whether diagnostic adapter command and response tracing should be logged to the output window.",
345+
"default": false
346+
}
347+
}
348+
},
302349
"pipeTransport": {
303350
"type": "object",
304351
"description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (clrdbg).",
@@ -472,12 +519,50 @@
472519
"items": {
473520
"type": "string"
474521
},
522+
"default": []
523+
},
475524
"requireExactSource": {
476525
"type": "boolean",
477526
"description": "Optional flag to require current source code to match the pdb.",
478527
"default": true
479528
},
480-
"default": []
529+
"logging": {
530+
"type": "object",
531+
"required": [],
532+
"default": {},
533+
"description": "Optional flags to determine what types of messages should be logged to the output window.",
534+
"properties": {
535+
"exceptions": {
536+
"type": "boolean",
537+
"description": "Optional flag to determine whether exception messages should be logged to the output window.",
538+
"default": true
539+
},
540+
"moduleLoad": {
541+
"type": "boolean",
542+
"description": "Optional flag to determine whether module load events should be logged to the output window.",
543+
"default": true
544+
},
545+
"programOutput": {
546+
"type": "boolean",
547+
"description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.",
548+
"default": true
549+
},
550+
"engineLogging": {
551+
"type": "boolean",
552+
"description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.",
553+
"default": false
554+
},
555+
"trace": {
556+
"type": "boolean",
557+
"description": "Optional flag to determine whether diagnostic adapter command tracing should be logged to the output window.",
558+
"default": false
559+
},
560+
"traceResponse": {
561+
"type": "boolean",
562+
"description": "Optional flag to determine whether diagnostic adapter command and response tracing should be logged to the output window.",
563+
"default": false
564+
}
565+
}
481566
}
482567
}
483568
}

src/coreclr-debug/install.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -162,33 +162,33 @@ export class DebugInstaller
162162
emitEntryPoint: true
163163
},
164164
dependencies: {
165-
"Microsoft.VisualStudio.clrdbg": "14.0.25406-preview-3044032",
166-
"Microsoft.VisualStudio.clrdbg.MIEngine": "14.0.30610-preview-1",
167-
"Microsoft.VisualStudio.OpenDebugAD7": "1.0.20614-preview-2",
168-
"NETStandard.Library": "1.5.0-rc2-24027",
165+
"Microsoft.VisualStudio.clrdbg": "14.0.25429-preview-3095034",
166+
"Microsoft.VisualStudio.clrdbg.MIEngine": "14.0.30629-preview-1",
167+
"Microsoft.VisualStudio.OpenDebugAD7": "1.0.20628-preview-1",
168+
"NETStandard.Library": "1.6.0",
169169
"Newtonsoft.Json": "7.0.1",
170170
"Microsoft.VisualStudio.Debugger.Interop.Portable": "1.0.1",
171-
"System.Collections.Specialized": "4.0.1-rc2-24027",
172-
"System.Collections.Immutable": "1.2.0-rc2-24027",
173-
"System.Diagnostics.Process" : "4.1.0-rc2-24027",
174-
"System.Diagnostics.StackTrace": "4.0.1-rc2-24027",
175-
"System.Dynamic.Runtime": "4.0.11-rc2-24027",
176-
"Microsoft.CSharp": "4.0.1-rc2-24027",
177-
"System.Threading.Tasks.Dataflow": "4.6.0-rc2-24027",
178-
"System.Threading.Thread": "4.0.0-rc2-24027",
179-
"System.Xml.XDocument": "4.0.11-rc2-24027",
180-
"System.Xml.XmlDocument": "4.0.1-rc2-24027",
181-
"System.Xml.XmlSerializer": "4.0.11-rc2-24027",
182-
"System.ComponentModel": "4.0.1-rc2-24027",
183-
"System.ComponentModel.Annotations": "4.1.0-rc2-24027",
184-
"System.ComponentModel.EventBasedAsync": "4.0.11-rc2-24027",
185-
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24027",
186-
"System.Net.Http": "4.0.1-rc2-24027"
171+
"System.Collections.Specialized": "4.0.1",
172+
"System.Collections.Immutable": "1.2.0",
173+
"System.Diagnostics.Process" : "4.1.0",
174+
"System.Diagnostics.StackTrace": "4.0.1",
175+
"System.Dynamic.Runtime": "4.0.11",
176+
"Microsoft.CSharp": "4.0.1",
177+
"System.Threading.Tasks.Dataflow": "4.6.0",
178+
"System.Threading.Thread": "4.0.0",
179+
"System.Xml.XDocument": "4.0.11",
180+
"System.Xml.XmlDocument": "4.0.1",
181+
"System.Xml.XmlSerializer": "4.0.11",
182+
"System.ComponentModel": "4.0.1",
183+
"System.ComponentModel.Annotations": "4.1.0",
184+
"System.ComponentModel.EventBasedAsync": "4.0.11",
185+
"System.Runtime.Serialization.Primitives": "4.1.1",
186+
"System.Net.Http": "4.1.0"
187187
},
188188
frameworks: {
189189
"netcoreapp1.0": {
190190
imports: [ "dnxcore50", "portable-net45+win8" ]
191-
}
191+
}
192192
},
193193
runtimes: {
194194
}
@@ -197,7 +197,7 @@ export class DebugInstaller
197197
projectJson.runtimes[targetRuntime] = {};
198198

199199
if (this._isOffline) {
200-
projectJson.dependencies["Microsoft.NetCore.DotNetHostPolicy"] = "1.0.1-rc-002702";
200+
projectJson.dependencies["Microsoft.NetCore.DotNetHostPolicy"] = "1.0.1";
201201
}
202202

203203
return projectJson;

0 commit comments

Comments
 (0)