You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Frequently asked questions about FxCop and FxCop analyzers
16
+
17
+
It can be a little confusing to understand the differences between legacy FxCop and FxCop analyzers. This article aims to address some of questions you might have.
18
+
19
+
## What's the difference between legacy FxCop and FxCop analyzers?
20
+
21
+
Legacy FxCop runs post-build analysis on a compiled assembly. It runs as a separate executable called **FxCopCmd.exe**. FxCopCmd.exe loads the compiled assembly, runs code analysis, and then reports the results (or *diagnostics*).
22
+
23
+
FxCop analyzers are based on the .NET Compiler Platform ("Roslyn"). You [install them as a NuGet package](install-fxcop-analyzers.md#to-install-fxcop-analyzers-as-a-nuget-package) that's referenced by the project or solution. FxCop analyzers run source-code based analysis during compiler execution. FxCop analyzers are hosted within the compiler process, either **csc.exe** or **vbc.exe**, and run analysis when the project is built. Analyzer results are reported along with compiler results.
24
+
25
+
> [!NOTE]
26
+
> You can also [install FxCop analyzers as a Visual Studio extension](install-fxcop-analyzers.md#to-install-fxcop-analyzers-as-a-vsix). In this case, the analyzers execute as you type in the code editor, but they don't execute at build time. If you want to run FxCop analyzers as part of continuous integration (CI), install them as a NuGet package instead.
27
+
28
+
## Does the Run Code Analysis command run FxCop analyzers?
29
+
30
+
No. When you select **Analyze** > **Run Code Analysis** in Visual Studio 2017, it executes static code analysis or legacy FxCop. **Run Code Analysis** has no effect on Roslyn-based analyzers, including the Roslyn-based FxCop analyzers.
31
+
32
+
## Does the RunCodeAnalysis msbuild project property run analyzers?
33
+
34
+
No. The **RunCodeAnalysis** property in a project file (for example, *.csproj*) is only used to execute legacy FxCop. It runs a post-build msbuild task that invokes **FxCopCmd.exe**. This is equivalent to selecting **Analyze** > **Run Code Analysis** in Visual Studio.
35
+
36
+
## So how do I run FxCop analyzers then?
37
+
38
+
To run FxCop analyzers, first [install the NuGet package](install-fxcop-analyzers.md) for them. Then build your project or solution from Visual Studio or using msbuild. The warnings and errors that the FxCop analyzers generate will appear in the **Error List** or the command window.
39
+
40
+
## See also
41
+
42
+
-[Overview of .NET Compiler Platform analyzers](roslyn-analyzers-overview.md)
43
+
-[Get started with analyzers](fxcop-analyzers.yml)
Copy file name to clipboardExpand all lines: docs/extensibility/visual-cpp-project-extensibility.md
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ ms.workload: ["vssdk"]
13
13
---
14
14
# Visual Studio C++ Project system extensibility and toolset integration
15
15
16
-
The *Visual C++ Project system* is used by .vcxproj files. It's based on the [Visual Studio Common Project System (CPS)](https://github.com/Microsoft/VSProjectSystem/blob/master/doc/Index.md) and provides additional, C++ specific extensibility points for easy integration of new toolsets, build architectures and target platforms.
16
+
The *Visual C++ Project system* is used for .vcxproj files. It's based on the [Visual Studio Common Project System (CPS)](https://github.com/Microsoft/VSProjectSystem/blob/master/doc/Index.md) and provides additional, C++ specific extensibility points for easy integration of new toolsets, build architectures and target platforms.
17
17
18
18
## C++ MSBuild targets structure
19
19
@@ -220,13 +220,13 @@ If you look at the targets, such as `_ClCompile`, you'll see they don't do anyth
220
220
</Target>
221
221
```
222
222
223
-
`ClCompile` and other build tool-specific targets are defined as empty targets in Microsoft.CppBuild.targets:
223
+
`ClCompile` and other build tool-specific targets are defined as empty targets in *Microsoft.CppBuild.targets*:
224
224
225
225
```xml
226
226
<TargetName="ClCompile"/>
227
227
```
228
228
229
-
Because the `ClCompile` target is defined as an empty target in *Microsoft.CppBuild.targets*, unless it is overridden by a toolset, no real build action is performed. The toolset targets can override the `ClCompile` target, that is, they can contain another `ClCompile` definition after importing *Microsoft.CppBuild.targets*:
229
+
Because the `ClCompile` target is empty, unless it is overridden by a toolset, no real build action is performed. The toolset targets can override the `ClCompile` target, that is, they can contain another `ClCompile` definition after importing *Microsoft.CppBuild.targets*:
230
230
231
231
```xml
232
232
<TargetName="ClCompile"
@@ -236,7 +236,7 @@ Because the `ClCompile` target is defined as an empty target in *Microsoft.CppBu
236
236
</Target>
237
237
```
238
238
239
-
Despite the name`ClCompile`, which was created before Visual Studio implemented cross-platform support, the `ClCompile` target doesn't have to call CL.exe. It can also call Clang, gcc, or other compilers by using appropriate MSBuild tasks.
239
+
Despite its name, which was created before Visual Studio implemented cross-platform support, the `ClCompile` target doesn't have to call CL.exe. It can also call Clang, gcc, or other compilers by using appropriate MSBuild tasks.
240
240
241
241
The `ClCompile` target should not have any dependencies except the `SelectClCompile` target, which is required for the single file compile command to work in the IDE.
242
242
@@ -282,7 +282,7 @@ If you need to create a new task for a build tool, you can choose from the follo
282
282
283
283
1. If you want better task performance or just need more complex functionality, use the regular MSBuild [task writing](../msbuild/task-writing.md) process.
284
284
285
-
If not all inputs and outputs of the tool are listed on the tool command line, as in the `CL`, `MIDL`, and `RC` cases, and if you want automatic input and output file tracking and .tlog file creation, derive your task from `TrackedVCToolTask`.
285
+
If not all inputs and outputs of the tool are listed on the tool command line, as in the `CL`, `MIDL`, and `RC` cases, and if you want automatic input and output file tracking and .tlog file creation, derive your task from the `Microsoft.Build.CPPTasks.TrackedVCToolTask` class. At present, while there is documentation for the base [ToolTask](/dotnet/api/microsoft.build.utilities.tooltask) class, there are no examples or documentation for the details of the `TrackedVCToolTask` class. If this would be of particular interest, add your voice to a request on [developercommunity.visualstudio.com](https://developercommunity.visualstudio.com/spaces/62/index.html).
286
286
287
287
## Incremental builds and up-to-date checks
288
288
@@ -421,7 +421,7 @@ To use `Task.HostObject` to get the unsaved content of source files, the targets
421
421
@="{83046B3F-8984-444B-A5D2-8029DEE2DB70}"
422
422
```
423
423
424
-
## Project extensibility in the Visual Studio IDE
424
+
## Visual C++ project extensibility in the Visual Studio IDE
425
425
426
426
The Visual C++ project system is based on the [VS Project System](https://github.com/Microsoft/VSProjectSystem/blob/master/doc/Index.md), and uses its extensibility points. However, the project hierarchy implementation is specific to Visual C++ and not based on CPS, so hierarchy extensibility is limited to project items.
427
427
@@ -650,6 +650,6 @@ For information on how to create VSIX files, see [Shipping Visual Studio Extensi
650
650
651
651
The Microsoft Build System ([MSBuild](../msbuild/msbuild.md)) provides the build engine and the extensible XML-based format for project files. You should be familiar with basic [MSBuild concepts](../msbuild/msbuild-concepts.md) and with how [MSBuild for Visual C++](/cpp/build/msbuild-visual-cpp-overview) works in order to extend the Visual C++ project system.
652
652
653
-
The Managed Extensibility Framework ([MEF](/dotnet/framework/mef/)) provides the extension APIs that are used by CPS and the Visual C++ project system. For an overview of how MEF is used by CPS, see [MEF](https://github.com/Microsoft/VSProjectSystem/blob/master/doc/overview/mef.md).
653
+
The Managed Extensibility Framework ([MEF](/dotnet/framework/mef/)) provides the extension APIs that are used by CPS and the Visual C++ project system. For an overview of how MEF is used by CPS, see [CPS and MEF](https://github.com/Microsoft/VSProjectSystem/blob/master/doc/overview/mef.md#cps-and-mef) in the [VSProjectSystem overview of MEF](https://github.com/Microsoft/VSProjectSystem/blob/master/doc/overview/mef.md).
654
654
655
655
You can customize the existing build system to add build steps or new file types. For more information, see [MSBuild (Visual C++) Overview](/cpp/build/msbuild-visual-cpp-overview) and [Working with project properties](/cpp/ide/working-with-project-properties).
Copy file name to clipboardExpand all lines: docs/test/lab-management/use-build-or-rm-instead-of-lab-management.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: "Use Build or Release Management for automated testing in Visual Studio"
2
+
title: "Use build or release management for automated testing"
3
3
ms.date: 03/02/2018
4
4
ms.prod: visual-studio-dev15
5
5
ms.technology: vs-ide-test
@@ -12,7 +12,7 @@ ms.workload:
12
12
- "multiple"
13
13
author: gewarren
14
14
---
15
-
# Use Build and Release Management instead of Lab Management for automated testing
15
+
# Use Azure Test Plans instead of Lab Management for automated testing
16
16
17
17
If you use Microsoft Test Manager (MTM) and Lab Management for automated testing or for build-deploy-test automation, this topic explains how you can achieve the same goals using the [build and release](/azure/devops/pipelines/index?view=vsts) features in Team Foundation Server (TFS) and Azure Test Plans.
18
18
@@ -58,7 +58,7 @@ The following table summarizes the typical activities you perform in Lab Center,
58
58
| Connect to machines. | Open the lab environment in Environment viewer. | Use SCVMM administration console directly to connect to the virtual machines. Alternatively, use the IP address or DNS names of the virtual machines to open remote desktop sessions. |
59
59
| Take a checkpoint of an environment, or restore an environment to a clean checkpoint. | Open the lab environment in Environment viewer. Select the option to take a checkpoint or to restore to a previous checkpoint. | Use SCVMM administration console directly to perform these operations on virtual machines. Or, to perform these steps as part of a larger automation, include the checkpoint tasks from the [SCVMM Integration extension](https://marketplace.visualstudio.com/items?itemname=ms-vscs-rm.scvmmapp) as part of the environment in a release definition. |
60
60
61
-
## Creation of networkisolated environments
61
+
## Create network-isolated environments
62
62
63
63
A network isolated lab environment is a group of SCVMM virtual machines that can be cloned safely without causing network conflicts. This was done in MTM using a series of instructions that used a set of network interface cards to configure the virtual machines in a private network, and another set of network interface cards to configure the virtual machines in a public network.
0 commit comments