BuildRequestDataFlags 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.
Flags providing additional control over the build request
This enumeration supports a bitwise combination of its member values.
public enum class BuildRequestDataFlags
[System.Flags]
public enum BuildRequestDataFlags
[<System.Flags>]
type BuildRequestDataFlags =
Public Enum BuildRequestDataFlags
- Inheritance
-
BuildRequestDataFlags
- Attributes
Fields
Name | Value | Description |
---|---|---|
None | 0 | No flags. |
ReplaceExistingProjectInstance | 1 | When this flag is present, the existing ProjectInstance in the build will be replaced by this one. |
ProvideProjectStateAfterBuild | 2 | When this flag is present, the BuildResult issued in response to this request will include ProjectStateAfterBuild. |
IgnoreExistingProjectState | 4 | When this flag is present and the project has previously been built on a node whose affinity is incompatible with the affinity this request requires, we will ignore the project state (but not target results) that were previously generated. |
ClearCachesAfterBuild | 8 | When this flag is present, caches including the Microsoft.Build.Evaluation.ProjectRootElementCacheBase will be cleared after the build request completes. This is used when the build request is known to modify a lot of state such as restoring packages or generating parts of the import graph. |
SkipNonexistentTargets | 16 | When this flag is present, the top level target(s) in the build request will be skipped if those targets are not defined in the Project to build. This only applies to this build request (if another target calls the "missing target" at any other point this will still result in an error). |
ProvideSubsetOfStateAfterBuild | 32 | When this flag is present, the BuildResult issued in response to this request will include a ProjectStateAfterBuild that includes ONLY the explicitly-requested properties, items, and metadata. |
IgnoreMissingEmptyAndInvalidImports | 64 | When this flag is present, projects loaded during build will ignore missing imports (IgnoreMissingImports and IgnoreInvalidImports). This is especially useful during a restore since some imports might come from packages that haven't been restored yet. |
FailOnUnresolvedSdk | 128 | When this flag is present, an unresolved MSBuild project SDK will fail the build. This flag is used to change the IgnoreMissingEmptyAndInvalidImports behavior to still fail when an SDK is missing because those are more fatal. |
Remarks
The IgnoreExistingProjectState
flag is provided only for those cases where the client knows that the new build request does not depend on the project state generated by a previous request. Setting this flag can provide a performance boost in the case of incompatible node affinities, because MSBuild would otherwise have to serialize the project state from one node to another. Serializing the project state can be expensive, depending on the amount of data the project has previously generated.
The IgnoreExistingProjectState
flag has no effect on target results, so if a previous request has built a target, the new request will not rebuild the target. Additionally, none of the project state mutations which occurred as a consequence of previously building that target will be reapplied.