BuildRequestDataFlags 列挙型


ビルド要求をより詳細に制御できるようにするフラグ。Flags providing additional control over the build request.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class BuildRequestDataFlags
public enum BuildRequestDataFlags
type BuildRequestDataFlags = 
Public Enum BuildRequestDataFlags


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, this build request ignores the project state (but not the target results) that was previously generated. この動作は、通常は望ましくありません。詳細については、「Remarks (コメント)」セクションをご覧ください。This behavior is not usually desired; see the Remarks section for more information.

None 0

フラグなし。No flags.

ProvideProjectStateAfterBuild 2

このフラグが存在する場合、この要求に応答して発行された BuildResultProjectStateAfterBuild が含まれます。When this flag is present, BuildResult issued in response to this request will include ProjectStateAfterBuild.

ReplaceExistingProjectInstance 1

このフラグが設定されている場合は、ビルド内の既存の ProjectInstance がこの ProjectInstance に置き換えられます。When this flag is present, the existing ProjectInstance in the build will be replaced by this one.


IgnoreExistingProjectStateフラグは、新しいビルド要求が前回の要求で生成されたプロジェクトの状態に依存していないことをクライアントが認識している場合にのみ提供されます。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. このフラグを設定すると、互換性のないノードアフィニティの場合にパフォーマンスが向上します。これは、MSBuild では、プロジェクト状態をあるノードから別のノードにシリアル化する必要があるためです。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.

フラグIgnoreExistingProjectStateはターゲットの結果には影響しません。そのため、前の要求でターゲットが構築されている場合、新しい要求はターゲットを再構築しません。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.