Skip to content

Commit 7c87490

Browse files
authored
Merge pull request #687 from MicrosoftDocs/FromPublicMaster
Confirm merge from FromPublicMaster to master to sync with https://github.com/MicrosoftDocs/visualstudio-docs (branch master)
2 parents 9601896 + c7d546f commit 7c87490

20 files changed

+67
-34
lines changed

docs/debugger/debugger-feature-tour.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,9 @@ Press F5 until you reach the line of code where you selected **Run to Cursor**.
117117

118118
This command is useful when you are editing code and want to quickly set a temporary breakpoint and start the debugger.
119119

120-
> [!NOTE]
121-
> You can use **Run to Cursor** in the **Call Stack** window while you are debugging.
120+
121+
> [!NOTE]
122+
> You can use **Run to Cursor** in the **Call Stack** window while you are debugging.
122123
123124
## Restart your app quickly
124125

docs/debugger/getting-started-with-the-debugger.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ Mostly, we use the keyboard shortcuts here, because it's a good way to get fast
244244
245245
![Use the Run to Cursor feature](../debugger/media/dbg-tour-run-to-cursor.png "Run to Cursor")
246246
247-
You should be paused on the breakpoint in `OnApplicationStartup` (since that is the first breakpoint.
247+
You should be paused on the breakpoint in `MainWindow` (since that is the first breakpoint.
248248
249249
3. Press F5 to advance to the `Add` method where you selected **Run to Cursor**.
250250
@@ -274,7 +274,7 @@ Let's say that you are done examining the `Update` method in Data.cs, and you wa
274274
275275
![Exception Helper](../debugger/media/dbg-tour-exception-helper.png "Exception Helper")
276276
277-
Here, the **Exception Helper** shows you a `System.Argument` exception and an error message that says that the path is not a legal form. So, we know the error occurred on a method or function argument.
277+
Here, the **Exception Helper** shows you a `System.ArgumentException` and an error message that says that the path is not a legal form. So, we know the error occurred on a method or function argument.
278278
279279
In this example, the `DirectoryInfo` call gave the error on the empty string stored in the `value` variable. (Hover over `value` to see the empty string.)
280280
@@ -297,4 +297,4 @@ To learn more about the features of the debugger, see [Debugger Tips and Tricks]
297297
298298
## See Also
299299
[Debugging in Visual Studio](../debugger/index.md)
300-
[Debugger Feature Tour](../debugger/debugger-feature-tour.md)
300+
[Debugger Feature Tour](../debugger/debugger-feature-tour.md)

docs/ide/optimize-visual-studio-startup-time.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ The following sections show how to enable lightweight solution load and also hel
7070

7171
### Enable or disable lightweight solution load
7272

73-
You can right-click the solution name in Solution Explorer, and select **Enable Lightweight Solution Load**. After selecting the option, you need to close and reopen the solution to activate lightweight solution load.
73+
You can right-click the solution name in Solution Explorer, and select **Enable Lightweight Solution Load**. After selecting the option, you need to close and reopen the solution to activate lightweight solution load.
7474

7575
> [!NOTE]
76-
> The same steps apply for disabling LSL. To disable lightweight solution load, deselect **Enable Lightweight Solution Load**, then close and reopen the solution.
76+
> Similar steps apply for disabling LSL. To disable lightweight solution load, select **Disable Lightweight Solution Load**, then close and reopen the solution.
7777
7878
![Solution Explorer](../ide/media/VSIDE_LSL_Solution_Setting.png)
7979

docs/msbuild/customize-your-build.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ translation.priority.ht:
2323
- "fr-fr"
2424
- "it-it"
2525
- "ja-jp"
26-
- "ko-kr"
27-
- "pl-pl"
26+
- "ko-kr" - "pl-pl"
2827
- "pt-br"
2928
- "ru-ru"
3029
- "tr-tr"
@@ -70,6 +69,39 @@ Directory.Build.props is imported very early in Microsoft.Common.props, so prope
7069

7170
Directory.Build.targets is imported from Microsoft.Common.targets after importing .targets files from NuGet packages. So, it can be used to override properties and targets defined in most of the build logic, but at times it may be necessary to do customizations within the project file after the final import.
7271

72+
## Use case: multi-level merging
73+
74+
Suppose you have this standard solution structure:
75+
76+
````
77+
\
78+
MySolution.sln
79+
Directory.Build.props (1)
80+
\src
81+
Directory.Build.props (2-src)
82+
\Project1
83+
\Project2
84+
\test
85+
Directory.Build.props (2-test)
86+
\Project1Tests
87+
\Project2Tests
88+
````
89+
90+
It might be desirable to have common properties for all projects `(1)`, common properties for `src` projects `(2-src)`, and common properties for `test` projects `(2-test)`.
91+
92+
For msbuild to correctly merge the "inner" files (`2-src` and `2-test`) with the "outer" file (`1`), you must take into account that once msbuild finds a `Directory.Build.props` file, it stops further scanning. To continue scanning, and merge into the outer file, place this into both inner files:
93+
94+
`<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props'))" />`
95+
96+
A summary of msbuild's general approach is as follows:
97+
98+
- For any given project, msbuild finds the first `Directory.Build.props` upward in the solution structure, merges it with defaults, and stops scanning for more
99+
- If you want multiple levels to be found and merged, then [`<Import...>`](http://docs.microsoft.com/en-us/visualstudio/msbuild/property-functions#msbuild-getpathoffileabove) (shown above) the "outer" file from the "inner" file
100+
- If the "outer" file does not itself also import something above it, then scanning stops there
101+
- To control the scanning/merging process, use `$(DirectoryBuildPropsPath)` and `$(ImportDirectoryBuildProps)`
102+
103+
Or more simply: the first `Directory.Build.props` which doesn't import anything, is where msbuild stops.
104+
73105
## See Also
74106
[MSBuild Concepts](../msbuild/msbuild-concepts.md)
75107
[MSBuild Reference](../msbuild/msbuild-reference.md)

docs/profiling/collecting-application-statistics-for-aspnet-web-applications-using-the-profiler-sampling-method-from-the-command-line.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ This section describes the procedures and options for collecting performance sta
3939
> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md).
4040
4141
> [!NOTE]
42-
> Although the **VSPerfCmd** tool gives you complete access to Profiling Tools functionality, including pausing and resuming profiling, and collecting additional data from processor and Windows performance counters, you should use use the **VSPerfASPNETCmd** command line tool when you do not need this functionality. The **VSPerfASPNETCmd** command line tool is the preferred method when your are profiling ASP.NET Web sites using the stand-alone profiler. Compared with the [VSPerfCmd](../profiling/vsperfcmd.md) command line tool, no environment variables need to be set, and rebooting the computer is not required. For more information, see [Rapid Web Site Profiling with VSPerfASPNETCmd](../profiling/rapid-web-site-profiling-with-vsperfaspnetcmd.md).
42+
> Although the **VSPerfCmd** tool gives you complete access to Profiling Tools functionality, including pausing and resuming profiling, and collecting additional data from processor and Windows performance counters, you should use the **VSPerfASPNETCmd** command line tool when you do not need this functionality. The **VSPerfASPNETCmd** command line tool is the preferred method when your are profiling ASP.NET Web sites using the stand-alone profiler. Compared with the [VSPerfCmd](../profiling/vsperfcmd.md) command line tool, no environment variables need to be set, and rebooting the computer is not required. For more information, see [Rapid Web Site Profiling with VSPerfASPNETCmd](../profiling/rapid-web-site-profiling-with-vsperfaspnetcmd.md).
4343
4444
## Common Tasks
4545

docs/profiling/collecting-performance-statistics-by-using-sampling.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ By default, the [!INCLUDE[vsPreShort](../code-quality/includes/vspreshort_md.md)
6262
|On the **General** page, add .NET memory allocation and lifetime data collection, and specify naming details for the generated profiling data (.vsp) file.|- [Collecting .NET Memory Allocation and Lifetime Data](../profiling/collecting-dotnet-memory-allocation-and-lifetime-data.md)<br />- [How to: Set Performance Data File Name Options](../profiling/how-to-set-performance-data-file-name-options.md)|
6363
|On the **Sampling** page, change the sampling rate, change the sampling event from processor clock cycles to another processor performance counter, or change both..|- [How to: Choose Sampling Events](../profiling/how-to-choose-sampling-events.md)|
6464
|On the **Launch** page, specify the application to start and the start order if you have multiple .exe projects in your code solution.|- [Collecting tier interaction data](../profiling/collecting-tier-interaction-data.md)|
65-
|On the **Tier Interaction** page, add ADO.NET call information to to the data collected in theprofiling run.|- [Collecting tier interaction data](../profiling/collecting-tier-interaction-data.md)|
65+
|On the **Tier Interaction** page, add ADO.NET call information to the data collected in theprofiling run.|- [Collecting tier interaction data](../profiling/collecting-tier-interaction-data.md)|
6666
|On the **Windows Events** page, specify one or more Event Tracing for Windows (ETW) events to collect with the sampling data.|- [How to: Collect Event Tracing for Windows (ETW) Data](../profiling/how-to-collect-event-tracing-for-windows-etw-data.md)|
6767
|On the **Windows Counters** page, specify one or more operating system performance counters to add to the profiling data as marks.|- [How to: Collect Windows Counter Data](../profiling/how-to-collect-windows-counter-data.md)|
6868
|On the **Advanced** page, specify the version of the .NET Framework runtime to profile if your application modules use multiple versions. By default, the first version loaded is profiled.|- [How to: Specify the .NET Framework Runtime](../profiling/how-to-specify-the-dotnet-framework-runtime.md)|

docs/profiling/custom-native-etw-heap-events.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Foo* pFoo2 = (Foo*)mPool.allocate();
5959
Foo* pFoo3 = (Foo*)mPool.allocate();
6060
```
6161

62-
A snapshot from the The [Memory Usage](https://docs.microsoft.com/en-us/visualstudio/profiling/memory-usage) tool without custom heap tracking would show just the single 8192 byte allocation, and none of the custom allocations being made by the pool:
62+
A snapshot from the [Memory Usage](https://docs.microsoft.com/en-us/visualstudio/profiling/memory-usage) tool without custom heap tracking would show just the single 8192 byte allocation, and none of the custom allocations being made by the pool:
6363

6464
![Windows Heap allocation](media/heap-example-windows-heap.png)
6565

docs/profiling/how-to-attach-the-profiler-to-a-dotnet-service-to-collect-application-statistics-by-using-the-command-line.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ This topic describes how to use [!INCLUDE[vsprvs](../code-quality/includes/vsprv
3434
> [!NOTE]
3535
> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md).
3636
>
37-
> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../code-quality/includes/vs_current_short_md.md)] installation directory. On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md).
37+
> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../code-quality/includes/vs_current_short_md.md)] installation directory. On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md).
3838
>
3939
> Adding tier interaction data to a profiling run requires specific procedures with the command line profiling tools. See [Collecting tier interaction data](../profiling/adding-tier-interaction-data-from-the-command-line.md).
4040
@@ -78,7 +78,7 @@ This topic describes how to use [!INCLUDE[vsprvs](../code-quality/includes/vsprv
7878
|Option|Description|
7979
|------------|-----------------|
8080
|[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the domain and user name of the account that owns the profiled process. This option is required only if the process is running as a user other than the logged on user. The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.|
81-
|[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other sessions. This option is required if the service is running in a different session. The session id is listed in the Session ID column on the the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.|
81+
|[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other sessions. This option is required if the service is running in a different session. The session id is listed in the Session ID column on the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.|
8282
|[/wincounter](../profiling/wincounter.md) **:** `WinCounterPath`|Specifies a Windows performance counter to be collected during profiling.|
8383
|[/automark](../profiling/automark.md) **:** `Interval`|Use with **/wincounter** only. Specifies the number of milliseconds between Windows performance counter collection events. Default is 500 ms.|
8484
|[/events](../profiling/events-vsperfcmd.md) **:** `Config`|Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW events are collected in a separate (.etl) file.|

docs/profiling/how-to-attach-the-profiler-to-a-dotnet-service-to-collect-memory-data-by-using-the-command-line.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ This topic describes how to use [!INCLUDE[vsprvs](../code-quality/includes/vsprv
3535
> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md).
3636
3737
> [!NOTE]
38-
> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../code-quality/includes/vs_current_short_md.md)] installation directory. On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md).
38+
> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../code-quality/includes/vs_current_short_md.md)] installation directory. On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md).
3939
4040
To collect memory data from a [!INCLUDE[dnprdnshort](../code-quality/includes/dnprdnshort_md.md)] service, you use the [VSPerfCLREnv.cmd](../profiling/vsperfclrenv.md) tool to initialize the appropriate environment variables on the computer that hosts the service. The computer must be restarted to configure it for profiling.
4141

@@ -87,7 +87,7 @@ This topic describes how to use [!INCLUDE[vsprvs](../code-quality/includes/vsprv
8787
|Option|Description|
8888
|------------|-----------------|
8989
|[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the domain and user name of the account that owns the process. This option is required if the process is running as a user other than the logged on user. The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.|
90-
|[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other logon sessions. This option is required if the ASP.NET application is running in a different session. The session id is listed in the Session ID column on the the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.|
90+
|[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other logon sessions. This option is required if the ASP.NET application is running in a different session. The session id is listed in the Session ID column on the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.|
9191
|[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the optional domain and user name of the logon account under which the service runs. The logon account is listed in the Log On As column of the service in the Windows Service Control Manager.|
9292
|[/crosssession&#124;cs](../profiling/crosssession.md)|Enables profiling of processes in other logon sessions.|
9393
|[/wincounter](../profiling/wincounter.md) **:** `WinCounterPath`|Specifies a Windows performance counter to be collected during profiling.|

0 commit comments

Comments
 (0)