ProjectEvaluationStage Enum
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Specifies how far project evaluation should proceed.
public enum class ProjectEvaluationStage
public enum ProjectEvaluationStage
type ProjectEvaluationStage =
Public Enum ProjectEvaluationStage
- Inheritance
-
ProjectEvaluationStage
Fields
| Name | Value | Description |
|---|---|---|
| Properties | 1 | Evaluate initial properties, properties, and imports (passes 0 and 1), then stop. Property values are final and equivalent to a full evaluation. Items, item definitions, using-tasks, and targets are not available. |
| ItemDefinitions | 2 | Evaluate through item definitions (pass 2), then stop. Includes everything from Properties. Items, using-tasks, and targets are not available. |
| Items | 3 | Evaluate through items (passes 3 and 3.1), then stop. Includes everything from ItemDefinitions. Using-tasks and targets are not available. |
| UsingTasks | 4 | Evaluate through using-tasks (pass 4), then stop. Includes everything from Items. Targets are not available. |
| Full | 2147483647 | Perform a complete evaluation, including target registration (pass 5). This is the default. |
Remarks
MSBuild evaluation runs a fixed sequence of passes. Callers that only need data produced by an early pass (for example, a property value) can request a partial evaluation that stops after that pass, avoiding the cost of the later passes (item globbing, using-tasks, and target registration).
The values are ordered by how much of evaluation is performed. A larger value performs strictly more work than a smaller one. The default is Full, which preserves the historical behavior of running every pass.
Reading state that a partial evaluation did not produce (for example, reading items after stopping at Properties) throws InvalidOperationException.