3 instantiations of Traits
Microsoft.Build.Framework (3)
Traits.cs (3)
14private static Traits _instance = new Traits(); 22return new Traits(); 172_instance = new Traits();
158 references to Traits
Microsoft.Build (93)
BackEnd\BuildManager\BuildManager.cs (4)
499if (Traits.Instance.DebugEngine) 687Traits.Instance.DebugEngine is false) 1186includeTasksDetails: !Traits.Instance.ExcludeTasksDetailsFromTelemetry, 2053if (Traits.Instance.DebugEngine is false)
BackEnd\Client\MSBuildClient.cs (1)
501envVars.Remove(Traits.UseMSBuildServerEnvVarName);
BackEnd\Components\BuildRequestEngine\BuildRequestEngine.cs (1)
133_debugDumpState = Traits.Instance.DebugScheduler;
BackEnd\Components\Communications\NodeLauncher.cs (6)
68if (Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout) 75if (!Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout) 106if (!Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout) 196string useMSBuildServerEnvVarValue = Environment.GetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName); 201Environment.SetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName, "0"); 209Environment.SetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName, useMSBuildServerEnvVarValue);
BackEnd\Components\Communications\NodeProviderOutOfProc.cs (1)
72CommunicationsUtilities.Trace("MSBUILDNODEHANDSHAKESALT=\"{0}\", msbuildDirectory=\"{1}\", enableNodeReuse={2}, enableLowPriority={3}", Traits.MSBuildNodeHandshakeSalt, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32, enableNodeReuse, enableLowPriority);
BackEnd\Components\Communications\NodeProviderOutOfProcBase.cs (2)
116Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout; 359if (Traits.Instance.DebugNodeCommunication)
BackEnd\Components\Logging\LoggingService.cs (1)
585bool? escapeHatch = Traits.Instance.EscapeHatches.LogPropertiesAndItemsAfterEvaluation;
BackEnd\Components\Logging\ProjectLoggingContext.cs (1)
216else if (Traits.LogAllEnvironmentVariables)
BackEnd\Components\Logging\TargetLoggingContext.cs (1)
94&& (LoggingService.EnableTargetOutputLogging || Traits.Instance.EnableTargetOutputLogging)
BackEnd\Components\RequestBuilder\AssemblyLoadsTracker.cs (1)
110!Traits.Instance.LogAllAssemblyLoads &&
BackEnd\Components\RequestBuilder\IntrinsicTasks\ItemGroupLoggingHelper.cs (1)
123bool truncateTaskInputs = Traits.Instance.EscapeHatches.TruncateTaskInputs;
BackEnd\Components\RequestBuilder\IntrinsicTasks\PropertyGroupIntrinsicTask.cs (1)
41_propertyTrackingSettings = (PropertyTrackingSetting)Traits.Instance.LogPropertyTracking;
BackEnd\Components\RequestBuilder\TaskHost.cs (1)
130_disableInprocNode = Traits.Instance.InProcNodeDisabled || host.BuildParameters.DisableInProcNode;
BackEnd\Components\Scheduler\Scheduler.cs (2)
156=> Traits.Instance.InProcNodeDisabled || _componentHost.BuildParameters.DisableInProcNode; 214_debugDumpState = Traits.Instance.DebugScheduler;
BackEnd\Components\Scheduler\SchedulingPlan.cs (1)
220if (Traits.Instance.DebugScheduler)
BackEnd\Components\SdkResolution\CachingSdkResolverService.cs (1)
46if (Traits.Instance.EscapeHatches.DisableSdkResolutionCache)
BackEnd\Node\OutOfProcNode.cs (2)
509Traits.UpdateFromEnvironment(); 745Traits.UpdateFromEnvironment();
BackEnd\Node\OutOfProcServerNode.cs (1)
369Traits.UpdateFromEnvironment();
BackEnd\Shared\BuildResult.cs (1)
88private int _version = Traits.Instance.EscapeHatches.DoNotVersionBuildResult ? 0 : 1;
BackEnd\TaskExecutionHost\TaskExecutionHost.cs (3)
176LogTaskInputs = Traits.Instance.EscapeHatches.LogTaskInputs; 179_propertyTrackingSettings = (PropertyTrackingSetting)Traits.Instance.LogPropertyTracking; 983TaskFactoryEngineContext taskFactoryEngineContext = new TaskFactoryEngineContext(_buildEngine.IsRunningMultipleNodes, _taskLocation, _taskLoggingContext, _buildComponentHost?.BuildParameters?.MultiThreaded ?? false, Traits.Instance.ForceTaskFactoryOutOfProc);
BuildCheck\Infrastructure\CheckWrapper.cs (1)
38private readonly bool _limitReportsNumber = !Traits.Instance.EscapeHatches.DoNotLimitBuildCheckResultsNumber;
CommunicationsUtilities.cs (1)
346private static readonly bool s_trace = Traits.Instance.DebugNodeCommunication;
Construction\Solution\SolutionFile.cs (1)
204internal static bool ShouldUseNewParser(string solutionFile) => Traits.Instance.SlnParsingWithSolutionPersistenceOptIn || FileUtilities.IsSolutionXFilename(solutionFile);
Construction\Solution\SolutionProjectGenerator.cs (2)
188_batchProjectTargets = Traits.Instance.SolutionBatchTargets; 1043if (Traits.Instance.EmitSolutionMetaproj)
DebugUtils.cs (1)
36if (Traits.Instance.DebugEngine)
Definition\Project.cs (1)
3817var canEvaluateElementsWithFalseConditions = Traits.Instance.EscapeHatches.EvaluateElementsWithFalseConditionInProjectEvaluation ?? !loadSettings.HasFlag(ProjectLoadSettings.DoNotEvaluateElementsWithFalseCondition);
Definition\ProjectCollection.cs (1)
335if (Traits.Instance.UseSimpleProjectRootElementCacheConcurrency)
Definition\ProjectProperty.cs (2)
106if (this is EnvironmentDerivedProjectProperty environmentProperty && environmentProperty.loggingContext is { IsValid: true } loggingContext && !environmentProperty._loggedEnvProperty && !Traits.LogAllEnvironmentVariables) 125if (this is EnvironmentDerivedProjectProperty environmentProperty && environmentProperty.loggingContext is { IsValid: true } loggingContext && !environmentProperty._loggedEnvProperty && !Traits.LogAllEnvironmentVariables)
Evaluation\Evaluator.cs (9)
233data = new PropertyTrackingEvaluatorDataWrapper<P, I, M, D>(data, _evaluationLoggingContext, Traits.Instance.LogPropertyTracking); 362properties = Traits.LogAllEnvironmentVariables ? evaluator._data.Properties : evaluator.FilterOutEnvironmentDerivedProperties(evaluator._data.Properties); 640_logProjectImportedEvents = Traits.Instance.EscapeHatches.LogProjectImports; 803if (Traits.Instance.EscapeHatches.DebugEvaluation) 881if (!Traits.Instance.EscapeHatches.IgnoreTreatAsLocalProperty) 1126_evaluationLoggingContext.LogWarning("", new BuildEventFileInfo(""), "ChangeWave_InvalidFormat", Traits.Instance.MSBuildDisableFeaturesFromVersion, $"[{string.Join(", ", ChangeWaves.AllWaves.Select(x => x.ToString()))}]"); 1129_evaluationLoggingContext.LogWarning("", new BuildEventFileInfo(""), "ChangeWave_OutOfRotation", ChangeWaves.DisabledWave, Traits.Instance.MSBuildDisableFeaturesFromVersion, $"[{string.Join(", ", ChangeWaves.AllWaves.Select(x => x.ToString()))}]"); 1762Traits.Instance.EscapeHatches.SdkReferencePropertyExpansion ?? 2300if (((_loadSettings & ProjectLoadSettings.IgnoreEmptyImports) != 0 || Traits.Instance.EscapeHatches.IgnoreEmptyImports) && ProjectRootElement.IsEmptyXmlFile(importFileUnescaped))
Evaluation\Expander.cs (4)
716return (options & ExpanderOptions.Truncate) != 0 && !Traits.Instance.EscapeHatches.DoNotTruncateConditions; 2497if (Traits.Instance.UseLazyWildCardEvaluation) 4686if (Traits.Instance.EnableAllPropertyFunctions) 4698if (Traits.Instance.EnableAllPropertyFunctions)
Evaluation\Expander\WellKnownFunctions.cs (1)
926if (Traits.Instance.LogPropertyFunctionsRequiringReflection)
Evaluation\LazyItemEvaluator.cs (2)
42private Dictionary<string, LazyItemList> _itemLists = Traits.Instance.EscapeHatches.UseCaseSensitiveItemNames ? 468public ImmutableDictionary<string, LazyItemList>.Builder ReferencedItemLists { get; } = Traits.Instance.EscapeHatches.UseCaseSensitiveItemNames ?
Evaluation\LazyItemEvaluator.IncludeOperation.cs (1)
105bool skipGlob = !_conditionResult && globFragment.IsFullFileSystemScan && !Traits.Instance.EscapeHatches.AlwaysEvaluateDangerousGlobs;
Evaluation\LazyItemEvaluator.RemoveOperation.cs (1)
62if (listBuilder.Count >= Traits.Instance.DictionaryBasedItemRemoveThreshold)
Evaluation\LazyItemEvaluator.UpdateOperation.cs (1)
116&& !Traits.Instance.EscapeHatches.DoNotExpandQualifiedMetadataInUpdateOperation)
Evaluation\ProjectRootElementCache.cs (1)
178if (!Traits.Instance.EscapeHatches.AlwaysDoImmutableFilesUpToDateCheck && FileClassifier.Shared.IsNonModifiable(projectFile))
Evaluation\PropertiesUseTracker.cs (1)
33private bool _warnForUninitializedProperties = BuildParameters.WarnOnUninitializedProperty || Traits.Instance.EscapeHatches.WarnOnUninitializedProperty;
FileMatcher.cs (2)
107if (Traits.Instance.MSBuildCacheFileEnumerations) 2125if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard)
FileUtilities.cs (3)
1062return Traits.Instance.CacheFileExistence 1086return Traits.Instance.CacheFileExistence 1110return Traits.Instance.CacheFileExistence
Instance\ProjectInstance.cs (2)
2466var forcedProjectInstanceTranslationMode = Traits.Instance.EscapeHatches.ProjectInstanceTranslation; 3255if (Traits.Instance.EscapeHatches.DebugEvaluation)
Instance\ProjectPropertyInstance.cs (2)
102if (this is EnvironmentDerivedProjectPropertyInstance envProperty && envProperty.loggingContext?.IsValid == true && !envProperty._loggedEnvProperty && !Traits.LogAllEnvironmentVariables) 116if (this is EnvironmentDerivedProjectPropertyInstance envProperty && envProperty.loggingContext?.IsValid == true && !envProperty._loggedEnvProperty && !Traits.LogAllEnvironmentVariables)
Instance\TaskRegistry.cs (2)
1513Traits.Instance.ForceAllTasksOutOfProcToTaskHost && 1589TaskFactoryEngineContext taskFactoryLoggingHost = new TaskFactoryEngineContext(true /*I dont have the data at this point, the safest thing to do is make sure events are serializable*/, elementLocation, targetLoggingContext, isMultiThreadedBuild, Traits.Instance.ForceTaskFactoryOutOfProc);
Logging\BaseConsoleLogger.cs (4)
884Traits.LogAllEnvironmentVariables = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("MSBUILDLOGALLENVIRONMENTVARIABLES")); 909showTargetOutputs = Traits.Instance.EnableTargetOutputLogging; 953bool logPropertiesAndItemsAfterEvaluation = Traits.Instance.EscapeHatches.LogPropertiesAndItemsAfterEvaluation ?? true; 994Traits.LogAllEnvironmentVariables = true;
Logging\BinaryLogger\BinaryLogger.cs (7)
166_initialTargetOutputLogging = Traits.Instance.EnableTargetOutputLogging; 167_initialLogImports = Traits.Instance.EscapeHatches.LogProjectImports; 174Traits.Instance.EscapeHatches.LogProjectImports = true; 175Traits.Instance.EnableTargetOutputLogging = true; 176bool logPropertiesAndItemsAfterEvaluation = Traits.Instance.EscapeHatches.LogPropertiesAndItemsAfterEvaluation ?? true; 322Traits.Instance.EscapeHatches.LogProjectImports = _initialLogImports; 323Traits.Instance.EnableTargetOutputLogging = _initialTargetOutputLogging;
Logging\BinaryLogger\BuildEventArgsWriter.cs (1)
292if (Traits.LogAllEnvironmentVariables)
Logging\ParallelLogger\ParallelConsoleLogger.cs (1)
234if (Traits.LogAllEnvironmentVariables)
TelemetryInfra\InternalTelemetryConsumingLogger.cs (1)
43if (!Traits.Instance.FlushNodesTelemetryIntoConsole)
Utilities\EngineFileUtilities.cs (4)
28if (Traits.Instance.UseLazyWildCardEvaluation) 208if (Traits.Instance.LogExpandedWildcards) 293if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard) 550return Traits.Instance.UseLazyWildCardEvaluation && !forceEvaluateWildCards && MatchesLazyWildcard(filespecEscaped);
Microsoft.Build.Engine.OM.UnitTests (4)
DebugUtils.cs (1)
36if (Traits.Instance.DebugEngine)
FileUtilities.cs (3)
1062return Traits.Instance.CacheFileExistence 1086return Traits.Instance.CacheFileExistence 1110return Traits.Instance.CacheFileExistence
Microsoft.Build.Engine.UnitTests (3)
BackEnd\ResultsCache_Tests.cs (1)
421Traits.UpdateFromEnvironment();
BuildEventArgsSerialization_Tests.cs (2)
59Traits.LogAllEnvironmentVariables = serializeAllEnvironmentVariables; 82Traits.LogAllEnvironmentVariables = false;
Microsoft.Build.Framework (11)
NativeMethods.cs (4)
592bool isMaxPathRestricted = Traits.Instance.EscapeHatches.DisableLongPaths || IsMaxPathLegacyWindows(); 1156if (Traits.Instance.EscapeHatches.AlwaysDoImmutableFilesUpToDateCheck) 1188if (Traits.Instance.EscapeHatches.AlwaysUseContentTimestamp) 1202if ((data.fileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) == FILE_ATTRIBUTE_REPARSE_POINT && !Traits.Instance.EscapeHatches.UseSymlinkTimeInsteadOfTargetTime)
Telemetry\OpenTelemetryManager.cs (5)
207private bool IsOptOut() => Traits.Instance.FrameworkTelemetryOptOut || Traits.Instance.SdkTelemetryOptOut || !ChangeWaves.AreFeaturesEnabled(ChangeWaves.Wave17_14); 212private bool IsOptIn() => !IsOptOut() && (Traits.Instance.TelemetryOptIn || Traits.Instance.TelemetrySampleRateOverride.HasValue); 219double? overrideRate = Traits.Instance.TelemetrySampleRateOverride;
Traits.cs (2)
14private static Traits _instance = new Traits(); 16public static Traits Instance
Microsoft.Build.Tasks.Core (14)
AssemblyDependency\ReferenceTable.cs (1)
2739if (!Traits.Instance.EscapeHatches.TargetPathForRelatedFiles)
AssemblyDependency\ResolveAssemblyReference.cs (1)
2425Traits.Instance.EscapeHatches.CacheAssemblyInformation
CommunicationsUtilities.cs (1)
346private static readonly bool s_trace = Traits.Instance.DebugNodeCommunication;
Copy.cs (2)
318if (!Traits.Instance.EscapeHatches.CopyWithoutDelete && 1102int parallelism = Traits.Instance.CopyTaskParallelism;
CreateItem.cs (1)
170if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard)
DebugUtils.cs (1)
36if (Traits.Instance.DebugEngine)
Exec.cs (1)
593if (!Traits.Instance.EscapeHatches.UseAutoRunWhenLaunchingProcessUnderCmd)
FileMatcher.cs (2)
107if (Traits.Instance.MSBuildCacheFileEnumerations) 2125if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard)
FileUtilities.cs (3)
1062return Traits.Instance.CacheFileExistence 1086return Traits.Instance.CacheFileExistence 1110return Traits.Instance.CacheFileExistence
GenerateResource.cs (1)
3016if (Traits.Instance.EscapeHatches.UseMinimalResxParsingInCoreScenarios)
Microsoft.Build.UnitTests.Shared (1)
RunnerUtilities.cs (1)
153if (Traits.Instance.DebugUnitTests)
Microsoft.Build.Utilities.Core (9)
DebugUtils.cs (1)
36if (Traits.Instance.DebugEngine)
FileMatcher.cs (2)
107if (Traits.Instance.MSBuildCacheFileEnumerations) 2125if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard)
FileUtilities.cs (3)
1062return Traits.Instance.CacheFileExistence 1086return Traits.Instance.CacheFileExistence 1110return Traits.Instance.CacheFileExistence
MuxLogger.cs (1)
865Traits.LogAllEnvironmentVariables ? _buildStartedEvent.BuildEnvironment : _buildStartedEvent.BuildEnvironment?.Where(kvp => EnvironmentUtilities.IsWellKnownEnvironmentDerivedProperty(kvp.Key)).ToDictionary(kvp => kvp.Key, kvp => kvp.Value));
ToolTask.cs (2)
1434if (Traits.Instance.EscapeHatches.AvoidUnicodeWhenWritingToolTaskBatch) 1472commandLineCommands = $"{(Traits.Instance.EscapeHatches.UseAutoRunWhenLaunchingProcessUnderCmd ? string.Empty : "/D ")}/C \"{batchFileForCommandLine}\"";
MSBuild (23)
CommandLineSwitches.cs (1)
717if (!unquoteParameter || !Traits.Instance.EscapeHatches.UnquoteTargetSwitchParameters)
CommunicationsUtilities.cs (1)
346private static readonly bool s_trace = Traits.Instance.DebugNodeCommunication;
CoreCLRAssemblyLoader.cs (1)
58if (Traits.Instance.EscapeHatches.UseSingleLoadContext)
DebugUtils.cs (1)
36if (Traits.Instance.DebugEngine)
FileUtilities.cs (3)
1062return Traits.Instance.CacheFileExistence 1086return Traits.Instance.CacheFileExistence 1110return Traits.Instance.CacheFileExistence
OutOfProcTaskHostNode.cs (2)
189_debugCommunications = Traits.Instance.DebugNodeCommunication; 823_shutdownReason = buildComplete.PrepareForReuse && Traits.Instance.EscapeHatches.ReuseTaskHostNodes ? NodeEngineShutdownReason.BuildCompleteReuse : NodeEngineShutdownReason.BuildComplete;
XMake.cs (14)
258Environment.GetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName) == "1" && 259!Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout && 639bool enableRestore = Traits.Instance.EnableRestoreFirst; 1237if (multiThreaded && Traits.Instance.ForceAllTasksOutOfProcToTaskHost) 1474if (Traits.Instance.EnableRarNode) 1486if (!Traits.Instance.EscapeHatches.DoNotSendDeferredMessagesToBuildManager) 1737if (Traits.Instance.DebugEngine) 2702if (Traits.Instance.DebugEngine) 2798if (Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout) 2963if (Traits.IsEnvVarOneOrTrue("CI") || Traits.IsEnvVarOneOrTrue("GITHUB_ACTIONS")) 3925if (cpuCount == 1 && !Traits.Instance.InProcNodeDisabled) 3995if (cpuCount == 1 && !Traits.Instance.InProcNodeDisabled) 4031if (cpuCount == 1 && !Traits.Instance.InProcNodeDisabled)