Skip to content

Commit 8accad6

Browse files
author
Greg Van Liew
authored
Merge pull request #649 from MicrosoftDocs/FromPublicMaster
Confirm merge from FromPublicMaster to master to sync with https://github.com/MicrosoftDocs/visualstudio-docs (branch master)
2 parents 9e6c28d + 1ab32a0 commit 8accad6

8 files changed

+98
-38
lines changed

docs/debugger/autos-and-locals-windows.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ private static int subtractVars(int i, int j)
116116
}
117117
```
118118

119-
Set a breakpoint on the int `x = sumVars(a, b) + subtractVars(c, d);` line.
119+
Set a breakpoint on the `int x = sumVars(a, b) + subtractVars(c, d);` line.
120120

121121
Start debugging, and when execution breaks at the first breakpoint, press **F10 (Step Over)**. You should see the following in the **Autos** window:
122122

@@ -149,4 +149,4 @@ You can use the **Debug Location** toolbar to select the desired function, threa
149149
![DebugLocationToolbar](../debugger/media/debuglocationtoolbar.png "DebugLocationToolbar")
150150

151151
## See Also
152-
[Debugger Windows](../debugger/debugger-windows.md)
152+
[Debugger Windows](../debugger/debugger-windows.md)

docs/debugger/watch-and-quickwatch-windows.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ static void Main(string[] args)
159159

160160
- Automatic evaluation of properties and implicit functions calls by the debugger is turned off (**Tools > Options > Debugging > Enable property evaluation and other implicit function calls**), and then the expression cannot be automatically evaluated.
161161

162-
To refresh the value, click the refresh icon or press the spacebar. The debugger will try to reevaluate the expression. If the refresh icon appeared because automatic evaluation of properties and implicit side effects was turned off, the expression can be evaluated.
162+
To refresh the value, click the refresh icon or press the spacebar. The debugger will try to reevaluate the expression. If the refresh icon appeared because automatic evaluation of properties and other implicit function calls was turned off, the expression can be evaluated.
163163

164164
If you see an icon that is a circle with two wavy lines that resemble threads, the expression was not evaluated because of a potential cross-thread dependency. In other words, evaluating the code requires other threads in your application to run temporarily. When you are in break mode, all threads in your application are typically stopped. Allowing other threads to run temporarily can have unexpected effects on the state of your program and causes the debugger to ignore events such as breakpoints and exceptions thrown on those threads.
165165

@@ -240,10 +240,10 @@ public class Program
240240
## Using registers in the Watch window (C++ only)
241241
If you are debugging native code, you can add register names as well as variable names using **$\<register name>** or **@\<register name>**. For more information, see [Pseudovariables](../debugger/pseudovariables.md).
242242

243-
## DynamicView and the Watch window
243+
## Dynamic View and the Watch window
244244
Some scripting languages (e.g. JavaScript or Python) use dynamic or [duck typing](https://en.wikipedia.org/wiki/Duck_typing), and .NET languages (in version 4.0 and later) support objects that are difficult to observe using the normal debugging windows, because they may have runtime properties and methods that cannot be displayed.
245245

246-
When the Watch window displays a or an object created from a type that implements the [IDynamicMetaObjectProvider Interface](http://msdn.microsoft.com/Library/e887a72d-ebe2-4253-a7e8-3d8d05154647), the debugger adds a special **Dynamic View** node to the **Autos** display. This node shows the dynamic members of the dynamic object but does not allow editing of the member values.
246+
When the Watch window displays a or an object created from a type that implements the [IDynamicMetaObjectProvider Interface](https://docs.microsoft.com/en-us/dotnet/api/system.dynamic.idynamicmetaobjectprovider?view=netframework-4.7), the debugger adds a special **Dynamic View** node to the **Autos** display. This node shows the dynamic members of the dynamic object but does not allow editing of the member values.
247247

248248
If you right-click any child of a **Dynamic View** and choose **Add Watch**, the debugger inserts a new watch variable that casts an object to a dynamic object. In other words, **object Name** becomes (**(dynamic)object).Name**.
249249

@@ -260,4 +260,4 @@ public class Program
260260
The **Dynamic View** also enhances the debugging experience for COM objects. When the debugger encounters a COM object wrapped in **System.__ComObject**, it adds a **Dynamic View** node for the object.
261261

262262
## See Also
263-
[Debugger Windows](../debugger/debugger-windows.md)
263+
[Debugger Windows](../debugger/debugger-windows.md)

docs/extensibility/TOC.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@
232232
#### [Specifying File Handlers for File Name Extensions](specifying-file-handlers-for-file-name-extensions.md)
233233
#### [Registering Verbs for File Name Extensions](registering-verbs-for-file-name-extensions.md)
234234
#### [Managing Side-by-Side File Associations](managing-side-by-side-file-associations.md)
235+
## [Locating Visual Studio](locating-visual-studio.md)
235236
# [Inside the Visual Studio SDK](internals/TOC.md)
236237
# [Support for the Visual Studio SDK](support-for-the-visual-studio-sdk.md)
237238
# [Visual Studio SDK Reference](visual-studio-sdk-reference.md)

docs/extensibility/breaking-changes-2017.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,16 @@ Designer tooling for authoring of the new VSIX v3 manifest format is now availab
5959

6060
Previously, only one installation of each major release of Visual Studio could exist on each machine. To support side-by-side installations of Visual Studio 2017, multiple user data paths for Visual Studio may exist on the user's machine.
6161

62-
Code running inside the Visual Studio process should be updated to use the Visual Studio Settings Manager. Code running outside of the Visual Studio process can find the user path of a specific Visual Studio installation [by following the guidance here](https://blogs.msdn.microsoft.com/heaths/2016/09/15/changes-to-visual-studio-15-setup).
62+
Code running inside the Visual Studio process should be updated to use the Visual Studio Settings Manager. Code running outside of the Visual Studio process can find the user path of a specific Visual Studio installation [by following the guidance here](locating-visual-studio.md).
6363

6464
## Change: Global Assembly Cache (GAC)
6565

6666
Most Visual Studio core assemblies are no longer installed into the GAC. The following changes were made so that code running in Visual Studio process can still find required assemblies at runtime.
6767

68+
> [!NOTE] [INSTALLDIR] below refers to the installation root directory of Visual Studio. VSIXInstaller.exe will automatically populate this, but to write custom deployment code please read [locating Visual Studio](locating-visual-studio.md).
69+
6870
* Assemblies that were only installed into the GAC:
69-
* These assemblies are now installed under %VsFolder%\Common7\IDE\, %VsFolder%\Common7\IDE\PublicAssemblies or %VsFolder%\Common7\IDE\PrivateAssemblies. These folders are part of the Visual Studio process's probing paths.
71+
* These assemblies are now installed under [INSTALLDIR]\Common7\IDE\, [INSTALLDIR]\Common7\IDE\PublicAssemblies or [INSTALLDIR]\Common7\IDE\PrivateAssemblies. These folders are part of the Visual Studio process's probing paths.
7072
* Assemblies that were installed into a non-probing path and into the GAC:
7173
* The copy in the GAC was removed from setup.
7274
* A .pkgdef file was added to specify a code base entry for the assembly.
@@ -80,22 +82,22 @@ Most Visual Studio core assemblies are no longer installed into the GAC. The fol
8082
"culture"="neutral"
8183
"version"=15.0.0.0
8284
```
83-
At runtime, the Visual Studio pkgdef subsystem will merge these entries into the Visual Studio process's runtime configuration file (under %VsAppDataFolder%\devenv.exe.config) as [`<codeBase>`](https://msdn.microsoft.com/en-us/library/efs781xb(v=vs.110).aspx) elements. This is the recommended way to let the Visual Studio process find your assembly, because it avoids searching through probing paths.
85+
At runtime, the Visual Studio pkgdef subsystem will merge these entries into the Visual Studio process's runtime configuration file (under [VSAPPDATA]\devenv.exe.config) as [`<codeBase>`](https://msdn.microsoft.com/en-us/library/efs781xb(v=vs.110).aspx) elements. This is the recommended way to let the Visual Studio process find your assembly, because it avoids searching through probing paths.
8486

8587
### Reacting to this breaking change
8688

8789
* If your extension is running within the Visual Studio process:
8890
* Your code will be able to find Visual Studio core assemblies.
8991
* Consider using a .pkgdef file to specify a path to your assemblies if necessary.
9092
* If your extension is running outside the Visual Studio process:
91-
* Consider looking for Visual Studio core assemblies under %VsFolder%\Common7\IDE\, %VsFolder%\Common7\IDE\PublicAssemblies or %VsFolder%\Common7\IDE\PrivateAssemblies using configuration file or assembly resolver.
93+
* Consider looking for Visual Studio core assemblies under [INSTALLDIR]\Common7\IDE\, [INSTALLDIR]\Common7\IDE\PublicAssemblies or [INSTALLDIR]\Common7\IDE\PrivateAssemblies using configuration file or assembly resolver.
9294

9395
## Change: Reduce registry impact
9496

9597
### Global COM registration
9698

9799
* Previously, Visual Studio installed many registry keys into the HKEY_CLASSES_ROOT and HKEY_LOCAL_MACHINE hives to support native COM registration. To eliminate this impact, Visual Studio now uses [Registration-Free Activation for COM components](https://msdn.microsoft.com/en-us/library/ms973913.aspx).
98-
* As a result, most TLB / OLB / DLL files under %ProgramFiles(x86)%\Common Files\Microsoft Shared\MSEnv are no longer installed by default by Visual Studio. These files are now installed under %VsFolder% with corresponding Registration-Free COM manifests used by the Visual Studio host process.
100+
* As a result, most TLB / OLB / DLL files under %ProgramFiles(x86)%\Common Files\Microsoft Shared\MSEnv are no longer installed by default by Visual Studio. These files are now installed under [INSTALLDIR] with corresponding Registration-Free COM manifests used by the Visual Studio host process.
99101
* As a result, external code that relies on global COM registration for Visual Studio COM interfaces will no longer find these registrations. Code running inside Visual Studio process will not see a difference.
100102

101103
### Visual Studio registry
@@ -104,7 +106,7 @@ Most Visual Studio core assemblies are no longer installed into the GAC. The fol
104106
* HKLM\Software\Microsoft\VisualStudio\\**Version**: Registry keys created by MSI installers and per-machine extensions.
105107
* HKCU\Software\Microsoft\VisualStudio\\**Version**: Registry keys created by Visual Studio to store user-specific settings.
106108
* HKCU\Software\Microsoft\VisualStudio\\**Version**_Config: A copy of Visual Studio HKLM key above, plus the registry keys merged from .pkgdef files by extensions.
107-
* To reduce the impact on the registry, Visual Studio now uses the [RegLoadAppKey](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724886(v=vs.85).aspx) function to store registry keys in a private binary file under %VsAppDataFolder%\privateregistry.bin. Only a very small number of Visual Studio-specific keys remain in the system registry.
109+
* To reduce the impact on the registry, Visual Studio now uses the [RegLoadAppKey](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724886(v=vs.85).aspx) function to store registry keys in a private binary file under [VSAPPDATA]\privateregistry.bin. Only a very small number of Visual Studio-specific keys remain in the system registry.
108110
* Existing code running inside the Visual Studio process is not impacted. Visual Studio will redirect all registry operations under the HKCU Visual Studio-specific key to the private registry. Reading and writing to other registry locations will continue to use the system registry.
109111
* External code will need to load and read from this file for Visual Studio registry entries.
110112

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: "Locating Visual Studio | Microsoft Docs"
3+
ms.custom: ""
4+
ms.date: "08/21/2017"
5+
ms.reviewer: ""
6+
ms.suite: ""
7+
ms.technology:
8+
- "vs-ide-sdk"
9+
ms.tgt_pltfrm: ""
10+
ms.topic: "article"
11+
helpviewer_keywords:
12+
- "deployment, VSIX"
13+
ms.assetid: 680c3b25-7901-4768-8363-6d1fcd1ea636
14+
ms.author: "heaths"
15+
manager: "ghogen"
16+
translation.priority.mt:
17+
- "cs-cz"
18+
- "de-de"
19+
- "es-es"
20+
- "fr-fr"
21+
- "it-it"
22+
- "ja-jp"
23+
- "ko-kr"
24+
- "pl-pl"
25+
- "pt-br"
26+
- "ru-ru"
27+
- "tr-tr"
28+
- "zh-cn"
29+
- "zh-tw"
30+
---
31+
# Locating Visual Studio
32+
33+
Starting with Visual Studio 2017, you can install multiple instances of the same version or even edition. This is helpful when you want to preview new functionality on your primary development machine while retaining your previous installation. Because of these changes, there is no single environment variable or registry value you can use to locate an instance. Instead, you can use a [COM query API](https://msdn.microsoft.com/library/microsoft.visualstudio.setup.configuration.aspx) to find instances based on criteria relevant to your extension.
34+
35+
This is a fast, read-only API with NuGet packages available for native and managed code.
36+
37+
| Code | Package |
38+
| ---- | --- |
39+
| Native | https://nuget.org/packages/Microsoft.VisualStudio.Setup.Configuration.Native |
40+
| Managed | https://nuget.org/packages/Microsoft.VisualStudio.Setup.Configuration.Interop |
41+
42+
You can locate a single instance given a path or the current process, or enumerate all instances. See [our samples](https://github.com/Microsoft/vs-setup-samples) for complete examples of how to locate Visual Studio.
43+
44+
## Tools
45+
46+
To find Visual Studio and other tools in build environments, PowerShell scripts, installers, and more scenarios, we have a number of open source tools you can use directly or redistribute along with your own scripts.
47+
48+
| Project | Description |
49+
| ------- | ----------- |
50+
| [vswhere](https://github.com/Microsoft/vswhere) | Single-file native executable to locate instances meeting criteria such as release or pre-release, what product is installed, and which workloads are installed. Also supports finding Visual Studio 2010 and newer, though less information is returned that for Visual Studio 2017 and newer. See the [wiki](https://github.com/Microsoft/vswhere/wiki) for examples. |
51+
| [VSSetup cmdlets](https://github.com/Microsoft/vssetup.powershell) | PowerShell cmdlets supported 2.0 and newer that return rich information as objects you can use to find instances based on the same criteria as _vswhere_ and to discover even more properties about instances. See the [wiki](https://github.com/Microsoft/vssetup.powershell/wiki) for examples. |
52+
| [VSIXBootstrapper](https://github.com/Microsoft/vsixbootstrapper) | Automatically locates _VSIXInstaller_ and passes the command line through to install a _*.vsix_ file. This can be useful in installers that do not have direct support for the query APIs. See the [wiki](https://github.com/Microsoft/vsixbootstrapper/wiki) for examples. |
53+
54+
## See Also
55+
56+
* [Changes to Visual Studio 2017 Setup](https://blogs.msdn.microsoft.com/heaths/2016/09/15/changes-to-visual-studio-15-setup)

docs/extensibility/set-install-root.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ translation.priority.mt:
3131
---
3232
# Installing outside the extensions folder
3333

34-
Starting with Visual Studio 2017 and VSIX v3 (version 3), there is now support for installing extension assets outside of the extensions folder. Currently, the following locations are enabled as valid installation locations (where [installdir] is mapped to the Visual Studio instance's installation directory):
34+
Starting with Visual Studio 2017 and VSIX v3 (version 3), there is now support for installing extension assets outside of the extensions folder. Currently, the following locations are enabled as valid installation locations (where [INSTALLDIR] is mapped to the Visual Studio instance's installation directory):
3535

36-
* [installdir]\Common7\IDE\PublicAssemblies
37-
* [installdir]\Common7\IDE\ReferenceAssemblies
38-
* [installdir]\MSBuild
39-
* [installdir]\Schemas
40-
* [installdir]\Licenses
41-
* [installdir]\RemoteDebugger
42-
* [installdir]\VSTargets
36+
* [INSTALLDIR]\Common7\IDE\PublicAssemblies
37+
* [INSTALLDIR]\Common7\IDE\ReferenceAssemblies
38+
* [INSTALLDIR]\MSBuild
39+
* [INSTALLDIR]\Schemas
40+
* [INSTALLDIR]\Licenses
41+
* [INSTALLDIR]\RemoteDebugger
42+
* [INSTALLDIR]\VSTargets
4343

4444
>**Note:** The VSIX format does not allow you to install outside the VS install folder structure.
4545
@@ -67,7 +67,7 @@ This will add some metadata to the corresponding `ProjectReference` property ins
6767
6868
## How to set a subpath under the InstallRoot
6969

70-
If you'd like to install to a subpath underneath the `InstallRoot`, you can do so by setting the `VsixSubPath` property just like the `InstallRoot` property. For instance, say we want our project reference's output to install to '[installdir]\MSBuild\MyCompany\MySDK\1.0'. We can do this easily with the property designer:
70+
If you'd like to install to a subpath underneath the `InstallRoot`, you can do so by setting the `VsixSubPath` property just like the `InstallRoot` property. For instance, say we want our project reference's output to install to '[INSTALLDIR]\MSBuild\MyCompany\MySDK\1.0'. We can do this easily with the property designer:
7171

7272
![set subpath](media/set-subpath.png)
7373

docs/extensibility/shipping-visual-studio-extensions.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,5 @@ After you've finished developing your extension, you can install it on other mac
7070
|[Preparing Extensions for Windows Installer Deployment](../extensibility/preparing-extensions-for-windows-installer-deployment.md)|Explains how to deploy your extension with Windows Installer.|
7171
|[Signing VSIX Packages](../extensibility/signing-vsix-packages.md)|Explains how to sign VSIX packages.|
7272
|[Private Galleries](../extensibility/private-galleries.md)|Explains how to create private galleries for extensions.|
73-
|[Supporting Multiple Versions of Visual Studio](../extensibility/supporting-multiple-versions-of-visual-studio.md)|Shows how to have your extension support multiple versions of Visual Studio.|
73+
|[Supporting Multiple Versions of Visual Studio](../extensibility/supporting-multiple-versions-of-visual-studio.md)|Shows how to have your extension support multiple versions of Visual Studio.|
74+
|[Locating Visual Studio](locating-visual-studio.md)|Describes how to locate Visual Studio instances for custom extension deployment.|

0 commit comments

Comments
 (0)