Skip to content

Commit 742e16c

Browse files
authored
Merge pull request #3098 from MicrosoftDocs/repo_sync_working_branch
Confirm merge from repo_sync_working_branch to master to sync with https://github.com/MicrosoftDocs/visualstudio-docs (branch master)
2 parents 0db2274 + 351289c commit 742e16c

File tree

5 files changed

+53
-47
lines changed

5 files changed

+53
-47
lines changed

docs/debugger/using-debuggertypeproxy-attribute.md

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,42 +21,45 @@ ms.workload:
2121
- "multiple"
2222
---
2323
# Using DebuggerTypeProxy Attribute
24-
<xref:System.Diagnostics.DebuggerTypeProxyAttribute> specifies a proxy, or stand-in, for a type and changes the way the type is displayed in debugger windows. When you view a variable that has a proxy, the proxy stands in for the original type in the **display**. The debugger variable window displays only the public members of the proxy type. Private members are not displayed.
25-
26-
This attribute can be applied to:
27-
28-
- Structures
29-
30-
- Classes
31-
32-
- Assemblies
33-
34-
A type proxy class must have a constructor that takes an argument of the type that the proxy will replace. The debugger creates a new instance of the type proxy class every time it needs to display a variable of the target type. This can have performance implications. As a result, you should not do any more work in the constructor than absolutely necessary.
35-
36-
To minimize performance penalties, the expression evaluator does not examine the attributes on the display proxy of the type unless the type is expanded by the user clicking the + symbol in the debugger window or by the use of <xref:System.Diagnostics.DebuggerBrowsableAttribute>. Therefore, you should not place attributes on the display type itself. Attributes can and should be used in the body of the display type.
37-
38-
It is a good idea for the type proxy to be a private nested class within the class that the attribute targets. This allows it to access internal members easily.
39-
40-
If <xref:System.Diagnostics.DebuggerTypeProxyAttribute> is used at the assembly level, the `Target` parameter specifies the type which the proxy will replace.
41-
42-
For an example of how to use this attribute along with <xref:System.Diagnostics.DebuggerDisplayAttribute> and <xref:System.Diagnostics.DebuggerTypeProxyAttribute>, see[Using the DebuggerDisplay Attribute](../debugger/using-the-debuggerdisplay-attribute.md).
43-
44-
## Using Generics with DebuggerTypeProxy
45-
Support for generics is limited. For C#, `DebuggerTypeProxy` supports only open types. An open type, also called an unconstructed type, is a generic type that has not been instantiated with arguments for its type parameters. Closed types, also called constructed types, are not supported.
46-
47-
The syntax for an open type looks like this:
48-
49-
`Namespace.TypeName<,>`
50-
51-
If you use a generic type as a target in `DebuggerTypeProxy`, you must use this syntax. The `DebuggerTypeProxy` mechanism infers the type parameters for you.
52-
53-
For more information on open and closed types in C# see the [C# Language Specification](/dotnet/csharp/language-reference/language-specification), section 20.5.2 Open and closed types.
54-
55-
Visual Basic does not have open type syntax, so you cannot do the same thing in Visual Basic. Instead, you must use a string representation of the open type name.
56-
57-
`"Namespace.TypeName'2"`
58-
59-
## See Also
60-
[Using the DebuggerDisplay Attribute](../debugger/using-the-debuggerdisplay-attribute.md)
61-
[Create custom views of .managed objects](../debugger/create-custom-views-of-dot-managed-objects.md)
62-
[Enhancing Debugging with the Debugger Display Attributes](/dotnet/framework/debug-trace-profile/enhancing-debugging-with-the-debugger-display-attributes)
24+
25+
<xref:System.Diagnostics.DebuggerTypeProxyAttribute> specifies a proxy, or stand-in, for a type and changes the way the type is displayed in debugger windows. When you view a variable that has a proxy, the proxy stands in for the original type in the **display**. The debugger variable window displays only the public members of the proxy type. Private members are not displayed.
26+
27+
This attribute can be applied to:
28+
29+
- Structures
30+
- Classes
31+
- Assemblies
32+
33+
A type proxy class must have a constructor that takes an argument of the type that the proxy will replace. The debugger creates a new instance of the type proxy class every time it needs to display a variable of the target type. This can have performance implications. As a result, you should not do any more work in the constructor than absolutely necessary.
34+
35+
To minimize performance penalties, the expression evaluator does not examine the attributes on the display proxy of the type unless the type is expanded by the user clicking the + symbol in the debugger window or by the use of <xref:System.Diagnostics.DebuggerBrowsableAttribute>. Therefore, you should not place attributes on the display type itself. Attributes can and should be used in the body of the display type.
36+
37+
It is a good idea for the type proxy to be a private nested class within the class that the attribute targets. This allows it to access internal members easily.
38+
39+
<xref:System.Diagnostics.DebuggerTypeProxyAttribute> can be inherited, so if a type proxy is specified on a base class it will apply to any derived classes, unless those derived classes specify their own type proxy.
40+
41+
If <xref:System.Diagnostics.DebuggerTypeProxyAttribute> is used at the assembly level, the `Target` parameter specifies the type which the proxy will replace.
42+
43+
For an example of how to use this attribute along with <xref:System.Diagnostics.DebuggerDisplayAttribute> and <xref:System.Diagnostics.DebuggerTypeProxyAttribute>, see[Using the DebuggerDisplay Attribute](../debugger/using-the-debuggerdisplay-attribute.md).
44+
45+
## Using Generics with DebuggerTypeProxy
46+
47+
Support for generics is limited. For C#, `DebuggerTypeProxy` supports only open types. An open type, also called an unconstructed type, is a generic type that has not been instantiated with arguments for its type parameters. Closed types, also called constructed types, are not supported.
48+
49+
The syntax for an open type looks like this:
50+
51+
`Namespace.TypeName<,>`
52+
53+
If you use a generic type as a target in `DebuggerTypeProxy`, you must use this syntax. The `DebuggerTypeProxy` mechanism infers the type parameters for you.
54+
55+
For more information on open and closed types in C# see the [C# Language Specification](/dotnet/csharp/language-reference/language-specification), section 20.5.2 Open and closed types.
56+
57+
Visual Basic does not have open type syntax, so you cannot do the same thing in Visual Basic. Instead, you must use a string representation of the open type name.
58+
59+
`"Namespace.TypeName'2"`
60+
61+
## See Also
62+
63+
- [Using the DebuggerDisplay Attribute](../debugger/using-the-debuggerdisplay-attribute.md)
64+
- [Create custom views of .managed objects](../debugger/create-custom-views-of-dot-managed-objects.md)
65+
- [Enhancing Debugging with the Debugger Display Attributes](/dotnet/framework/debug-trace-profile/enhancing-debugging-with-the-debugger-display-attributes)

docs/extensibility/registering-and-unregistering-vspackages.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ You use attributes to register a VSPackage, but
2727
[PackageRegistration(UseManagedResourcesOnly = true)]
2828
[Guid("0B81D86C-0A85-4f30-9B26-DD2616447F95")]
2929
public sealed class BasicPackage : Package
30-
{. . .}
30+
{
31+
// ...
32+
}
3133
```
3234

3335
## Unregister an extension
@@ -57,9 +59,9 @@ The following code shows how to create a new registration attribute.
5759

5860
```csharp
5961
[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
60-
public class CustomRegistrationAttribute : RegistrationAttribute
61-
{
62-
}
62+
public class CustomRegistrationAttribute : RegistrationAttribute
63+
{
64+
}
6365
```
6466

6567
The <xref:System.AttributeUsageAttribute> is used on attribute classes to specify the program element (class, method, etc.) to which the attribute pertains, whether it can be used more than once, and whether it can be inherited.
@@ -107,7 +109,7 @@ public override void Register(RegistrationAttribute.RegistrationContext context)
107109
{
108110
if (packageKey != null)
109111
packageKey.Close();
110-
}
112+
}
111113
}
112114

113115
public override void Unregister(RegistrationContext context)

docs/extensibility/signing-vsix-packages.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Extension assemblies do not need to be signed before they can run in Visual Stud
2424
If you want to secure your extension and make sure it hasn't been tampered with, you can add a digital signature to a VSIX package. When a VSIX is signed, the VSIX installer will display a message indicating that it is signed, plus more information about the signature itself. If the contents of the VSIX have been modified, and the VSIX has not been signed again, the VSIX installer will show that the signature is not valid. The installation is not stopped, but the user is warned.
2525

2626
> [!IMPORTANT]
27-
> Beginning in 2015, VSIX packages signed using anything other than SHA256 encryption will be identified as having an invalid signature. VSIX installation is not blocked but the user will be warned.
27+
> Beginning with Visual Studio 2015, VSIX packages signed using anything other than SHA256 encryption will be identified as having an invalid signature. VSIX installation is not blocked but the user will be warned.
2828
2929
## Signing a VSIX with VSIXSignTool
3030
There is a SHA256 encryption signing tool available from [VisualStudioExtensibility](http://www.nuget.org/profiles/VisualStudioExtensibility) on nuget.org at [VsixSignTool](http://www.nuget.org/packages/Microsoft.VSSDK.Vsixsigntool).
@@ -44,4 +44,4 @@ Extension assemblies do not need to be signed before they can run in Visual Stud
4444
VSIXSignTool.exe sign /f \<certfile> /p \<password> \<VSIXfile>
4545

4646
## See Also
47-
[Shipping Visual Studio Extensions](../extensibility/shipping-visual-studio-extensions.md)
47+
[Shipping Visual Studio Extensions](../extensibility/shipping-visual-studio-extensions.md)

docs/install/build-tools-container.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Visual Studio Build Tools - and to a greater extent, Visual Studio - require lot
5151

5252
**On Windows 10**:
5353

54-
1. [Rick-click on the Docker for Windows icon](https://docs.docker.com/docker-for-windows/#docker-settings) in the system tray and click **Settings...**.
54+
1. [Right-click on the Docker for Windows icon](https://docs.docker.com/docker-for-windows/#docker-settings) in the system tray and click **Settings**.
5555
2. [Click on the Daemon](https://docs.docker.com/docker-for-windows/#docker-daemon) section.
5656
3. [Toggle the **Basic**](https://docs.docker.com/docker-for-windows/#edit-the-daemon-configuration-file) button to **Advanced**.
5757
4. Add the following JSON array property to increase disk space to 120 GB (more than enough for Build Tools with room to grow).

docs/python/debugging-symbols-for-mixed-mode-c-cpp-python.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ If you downloaded symbols separately, follow the steps below to make Visual Stud
7272
| 3.3.2 | [32-bit](https://www.org/ftp/python/3.3.2/python-3.3.2-pdb.zip) - [64-bit](https://www.org/ftp/python/3.3.2/python-3.3.2.amd64-pdb.zip) |
7373
| 3.3.1 | [32-bit](https://www.org/ftp/python/3.3.1/python-3.3.1-pdb.zip) - [64-bit](https://www.org/ftp/python/3.3.1/python-3.3.1.amd64-pdb.zip) |
7474
| 3.3.0 | [32-bit](https://www.org/ftp/python/3.3.0/python-3.3.0-pdb.zip) - [64-bit](https://www.org/ftp/python/3.3.0/python-3.3.0.amd64-pdb.zip) |
75+
| 2.7.12 | [32-bit](https://www.python.org/ftp/python/2.7.12/python-2.7.12-pdb.zip) - [64-bit](https://www.python.org/ftp/python/2.7.12/python-2.7.12.amd64-pdb.zip) |
7576
| 2.7.11 | [32-bit](https://www.python.org/ftp/python/2.7.11/python-2.7.11-pdb.zip) - [64-bit](https://www.python.org/ftp/python/2.7.11/python-2.7.11.amd64-pdb.zip) |
7677
| 2.7.10 | [32-bit](https://www.python.org/ftp/python/2.7.10/python-2.7.10-pdb.zip) - [64-bit](https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64-pdb.zip) |
7778
| 2.7.9 | [32-bit](https://www.python.org/ftp/python/2.7.9/python-2.7.9-pdb.zip) - [64-bit](https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64-pdb.zip) |

0 commit comments

Comments
 (0)