Skip to content

Commit 71a7b7c

Browse files
Merge pull request #14680 from MicrosoftDocs/main
Auto Publish – main to live - 2025-11-21 23:00 UTC
2 parents 46afa44 + 6f334b7 commit 71a7b7c

58 files changed

Lines changed: 725 additions & 162 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/extensibility/creating-a-basic-project-system-part-2.md

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Creating a Basic Project System, Part 2
33
description: Learn how to add a Visual Studio template, a property page, and other features to a project created in a previous article.
4-
ms.date: 11/04/2016
4+
ms.date: 11/06/2025
55
ms.topic: how-to
66
helpviewer_keywords:
77
- writing a project system
@@ -16,7 +16,7 @@ ms.subservice: extensibility-integration
1616

1717
The first walkthrough in this series, [Create a basic project system, part 1](../extensibility/creating-a-basic-project-system-part-1.md), shows how to create a basic project system. This walkthrough builds on the basic project system by adding a Visual Studio template, a property page, and other features. You must complete the first walkthrough before you start this one.
1818

19-
This walkthrough teaches how to create a project type that has the project file name extension *.myproj*. To complete the walkthrough, you do not have to create your own language because the walkthrough borrows from the existing Visual C# project system.
19+
This walkthrough shows how to create a project type that has the project file name extension *.myproj*. To complete the walkthrough, you don't have to create your own language because the walkthrough borrows from the existing Visual C# project system.
2020

2121
This walkthrough teaches how to accomplish these tasks:
2222

@@ -125,7 +125,7 @@ By using a Visual Studio template (*.vstemplate* file) instead of a basic projec
125125
126126
3. Set the **Build Action** of this file to **VSCTCompile**. You can do this only in the *.csproj* file, not in the **Properties** window. Make sure that the **Build Action** of this file is set to **None** at this point.
127127
128-
1. Right-click the SimpleProject node and then click **Edit SimpleProject.csproj**.
128+
1. Right-click the SimpleProject node and then select **Edit SimpleProject.csproj**.
129129
130130
2. In the *.csproj* file, locate the *SimpleProject.vsct* item.
131131
@@ -141,20 +141,29 @@ By using a Visual Studio template (*.vstemplate* file) instead of a basic projec
141141
142142
4. the project file and close the editor.
143143
144-
5. Save the SimpleProject node, and then in the **Solution Explorer** click **Reload Project**.
144+
5. Save the SimpleProject node, and then in the **Solution Explorer** select **Reload Project**.
145145
146146
## Examine the Visual Studio template build steps
147147
The VSPackage project build system typically runs Visual Studio in setup mode when the *.vstemplate* file is changed or the project that contains the *.vstemplate* file is rebuilt. You can follow along by setting the verbosity level of MSBuild to Normal or higher.
148148
149-
1. On the **Tools** menu, click **Options**.
149+
:::moniker range="visualstudio"
150150
151-
2. Expand the **Projects and Solutions** node, and then select **Build and Run**.
151+
1. In the **Tools** > **Options** pane, expand the **All Settings** > **Projects and Solutions** > **Build and Run** section.
152152
153-
3. Set **MSBuild project build output verbosity** to **Normal**. Click **OK**.
153+
2. Set the **MSBuild project build output verbosity** option to **Normal**.
154154
155-
4. Rebuild the SimpleProject project.
155+
:::moniker-end
156+
:::moniker range="<=vs-2022"
156157
157-
The build step to create the *.zip* project file should resemble the following example.
158+
1. In the **Tools** > **Options** dialog, expand the **Projects and Solutions** > **Build and Run** section.
159+
160+
2. Set the **MSBuild project build output verbosity** option to **Normal**, and select **OK**.
161+
162+
:::moniker-end
163+
164+
3. Rebuild the SimpleProject project.
165+
166+
The build step to create the *.zip* project file should resemble the following example.
158167
159168
```
160169
ZipProjects:
@@ -169,7 +178,7 @@ ZipProjects:
169178
```
170179
171180
## Deploy a Visual Studio template
172-
Visual Studio templates do not contain path information. Therefore, the template *.zip* file must be deployed to a location that is known to Visual Studio. The location of the ProjectTemplates folder is typically *<%LOCALAPPDATA%>\Microsoft\VisualStudio\14.0Exp\ProjectTemplates*.
181+
Visual Studio templates don't contain path information. Therefore, the template *.zip* file must be deployed to a location that is known to Visual Studio. The location of the ProjectTemplates folder is typically *<%LOCALAPPDATA%>\Microsoft\VisualStudio\14.0Exp\ProjectTemplates*.
173182
174183
To deploy your project factory, the installation program must have administrator privileges. It deploys templates under the Visual Studio installation node: *...\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates*.
175184
@@ -182,7 +191,7 @@ Test your project factory to see whether it creates a project hierarchy by using
182191
183192
On later versions of Windows: On the **Start** screen, type **Reset the Microsoft Visual Studio \<version> Experimental Instance**.
184193
185-
2. A command prompt window appears. When you see the words **Press any key to continue**, click **ENTER**. After the window closes, open Visual Studio.
194+
2. A command prompt window appears. When you see the words **Press any key to continue**, select **ENTER**. After the window closes, open Visual Studio.
186195
187196
3. Rebuild the SimpleProject project and start debugging. The experimental instance appears.
188197
@@ -254,11 +263,11 @@ Test the modified project file to see whether the **Console** child node appears
254263
255264
2. Rebuild the SimpleProject project and start debugging. The experimental instance should appear
256265
257-
3. In the **New Project** dialog, click the **SimpleProject** node. The **Console Application** template should appear in the **Templates** pane.
266+
3. In the **New Project** dialog, select the **SimpleProject** node. The **Console Application** template should appear in the **Templates** pane.
258267
259268
4. Expand the **SimpleProject** node. The **Console** child node should appear. The **SimpleProject Application** template continues to appear in the **Templates** pane.
260269
261-
5. Click **Cancel** and stop debugging.
270+
5. Select **Cancel** and stop debugging.
262271
263272
![Simple Project Rollup](../extensibility/media/simpproj2_rollup.png "SimpProj2_Rollup")
264273
@@ -311,7 +320,7 @@ When you create a project by using a Visual Studio template in the **New Project
311320
312321
5. Create a new SimpleProject Console application. (In the **Project types** pane, select **SimpleProject**. Under **Visual Studio installed templates**, select **Console Application**.)
313322
314-
6. In the newly-created project, open *Program.cs*. It should look something like the following (GUID values in your file will differ.):
323+
6. In the newly-created project, open *Program.cs*. It should look something like the following (GUID values in your file differ.):
315324
316325
```csharp
317326
using System;
@@ -372,7 +381,7 @@ The property page you create in this section lets you alter and save these proje
372381
}
373382
```
374383
375-
Both of these methods return an array of property page GUIDs. The GeneralPropertyPage GUID is the only element in the array, so the **Property Pages** dialog box will show only one page.
384+
Both of these methods return an array of property page GUIDs. The GeneralPropertyPage GUID is the only element in the array, so the **Property Pages** dialog box shows only one page.
376385
377386
3. Add a class file named *GeneralPropertyPage.cs* to the SimpleProject project.
378387
@@ -446,7 +455,7 @@ The property page you create in this section lets you alter and save these proje
446455
}
447456
```
448457
449-
The `GeneralPropertyPage` class exposes the three public properties AssemblyName, OutputType, and RootNamespace. Because AssemblyName has no set method, it is displayed as a read-only property. OutputType is an enumerated constant, so it appears as dropdown list.
458+
The `GeneralPropertyPage` class exposes the three public properties AssemblyName, OutputType, and RootNamespace. Because AssemblyName has no set method, it's displayed as a read-only property. OutputType is an enumerated constant, so it appears as dropdown list.
450459
451460
The `SettingsPage` base class provides `ProjectMgr` to persist the properties. The `BindProperties` method uses `ProjectMgr` to retrieve the persisted property values and set the corresponding properties. The `ApplyChanges` method uses `ProjectMgr` to get the values of the properties and persist them to the project file. The property set method sets `IsDirty` to true to indicate that the properties have to be persisted. Persistence occurs when you save the project or solution.
452461
@@ -456,7 +465,7 @@ The property page you create in this section lets you alter and save these proje
456465
457466
7. Visual Studio calls your project factory to create a project by using the Visual Studio template. The new *Program.cs* file is opened in the code editor.
458467
459-
8. Right-click the project node in **Solution Explorer**, and then click **Properties**. The **Property Pages** dialog box is displayed.
468+
8. Right-click the project node in **Solution Explorer**, and then select **Properties**. The **Property Pages** dialog box is displayed.
460469
461470
![Simple Project Property Page](../extensibility/media/simpproj2_proppage.png "SimpProj2_PropPage")
462471
@@ -467,7 +476,7 @@ Now you can test whether you can modify and change property values.
467476
468477
2. Select the **OutputType** property, and then select **Class Library**.
469478
470-
3. Click **Apply**, and then click **OK**.
479+
3. Select **Apply**, and then select **OK**.
471480
472481
4. Reopen the **Property Pages** dialog box and verify that your changes have been persisted.
473482

docs/extensibility/extending-the-status-bar.md

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Extending the Status Bar
33
description: Learn how to extend the Visual Studio status bar at the bottom of the IDE, which displays information.
4-
ms.date: 11/04/2016
4+
ms.date: 11/06/2025
55
ms.topic: how-to
66
helpviewer_keywords:
77
- status bars, about status bars
@@ -64,15 +64,15 @@ You can use the Visual Studio status bar at the bottom of the IDE to display inf
6464

6565
3. Compile the code and start debugging.
6666

67-
4. Open the **Tools** menu in the experimental instance of Visual Studio. Click the **Invoke TestStatusBarCommand** button.
67+
4. Open the **Tools** menu in the experimental instance of Visual Studio. Select the **Invoke TestStatusBarCommand** button.
6868

69-
You should see that the text in the status bar now reads **We just wrote to the status bar.** and the message box that appears has the same text.
69+
The text in the status bar now shows **We just wrote to the status bar.** and the message box that appears uses the same text.
7070

7171
### Update the progress bar
7272

73-
1. In this procedure we will show how to initialize and update the progress bar.
73+
The following procedure shows how to initialize and update the progress bar.
7474

75-
2. Open the *TestStatusBarCommand.cs* file and replace the `MenuItemCallback` method with the following code:
75+
1. Open the *TestStatusBarCommand.cs* file and replace the `MenuItemCallback` method with the following code:
7676

7777
```csharp
7878
private void MenuItemCallback(object sender, EventArgs e)
@@ -96,21 +96,40 @@ You can use the Visual Studio status bar at the bottom of the IDE to display inf
9696
}
9797
```
9898

99-
3. Compile the code and start debugging.
99+
1. Compile the code and start debugging.
100100

101-
4. Open the **Tools** menu in the experimental instance of Visual Studio. Click **Invoke TestStatusBarCommand** button.
101+
1. Open the **Tools** menu in the experimental instance of Visual Studio. Select the **Invoke TestStatusBarCommand** button.
102102

103-
You should see that the text in the status bar now reads **Writing to the progress bar.** You should also see the progress bar get updated every second for 20 seconds. After that the status bar and the progress bar are cleared.
103+
The text in the status bar now shows **Writing to the progress bar.** The progress bar updates every second for 20 seconds, and the status and progress bars are cleared.
104104

105105
### Display an animation
106106

107-
1. The status bar displays a looping animation that indicates either a long-running operation (for example, building multiple projects in a solution). If you do not see this animation, make sure you have the correct **Tools** > **Options** settings:
107+
1. The status bar displays a looping animation that indicates either a long-running operation (for example, building multiple projects in a solution). If you don't see this animation, make sure you have the correct **Tools** > **Options** settings:
108+
109+
:::moniker range="visualstudio"
110+
111+
1. Open the **Tools** > **Options** pane and expand the **All Settings** > **Environment** > **Visual Experience** > **Effects** section.
112+
113+
1. Under **Enable rich client visual experience**, select **Automatic (Enable only when recommended)**.
114+
115+
:::moniker-end
116+
:::moniker range="<=vs-2022"
117+
118+
1. Open the **Tools** > **Options** dialog and expand the **Environment** > **General** section.
108119

109-
Go to the **Tools** > **Options** > **General** tab and uncheck **Automatically adjust visual experience based on client performance**. Then check the sub-option **Enable rich client visual experience**. You should now be able to see the animation when you build the project in your experimental instance of Visual Studio.
120+
1. Clear the **Automatically adjust visual experience based on client performance** checkbox.
110121

111-
In this procedure we display the standard Visual Studio animation which represents building a project or solution.
122+
1. Select the **Enable rich client visual experience** suboption checkbox.
112123

113-
2. Open the *TestStatusBarCommand.cs* file and replace the `MenuItemCallback` method with the following code:
124+
1. Select **OK**.
125+
126+
:::moniker-end
127+
128+
The animation now displays when you build the project in your experimental instance of Visual Studio.
129+
130+
This procedure shows how to display the standard Visual Studio animation, which represents building a project or solution.
131+
132+
1. Open the *TestStatusBarCommand.cs* file and replace the `MenuItemCallback` method with the following code:
114133

115134
```csharp
116135
private void MenuItemCallback(object sender, EventArgs e)
@@ -131,8 +150,8 @@ You can use the Visual Studio status bar at the bottom of the IDE to display inf
131150
}
132151
```
133152

134-
3. Compile the code and start debugging.
153+
1. Compile the code and start debugging.
135154

136-
4. Open the **Tools** menu in the experimental instance of Visual Studio and click **Invoke TestStatusBarCommand**.
155+
1. Open the **Tools** menu in the experimental instance of Visual Studio and select the **Invoke TestStatusBarCommand** button.
137156

138-
When you see the message box, you should also see the animation in the status bar on the far right. When you dismiss the message box, the animation disappears.
157+
When you see the message box, you should also see the animation in the status bar on the far right. When you dismiss the message box, the animation disappears.

0 commit comments

Comments
 (0)