3 instantiations of Traits
Microsoft.Build.Framework (3)
Traits.cs (3)
14private static Traits _instance = new Traits(); 22return new Traits(); 203_instance = new Traits();
147 references to Traits
Microsoft.Build (87)
BackEnd\BuildManager\BuildManager.cs (4)
537if (Traits.Instance.DebugEngine) 728Traits.Instance.DebugEngine is false) 1226includeTasksDetails: !Traits.Instance.ExcludeTasksDetailsFromTelemetry, 2238if (Traits.Instance.DebugEngine is false)
BackEnd\Client\MSBuildClient.cs (1)
501envVars.Remove(Traits.UseMSBuildServerEnvVarName);
BackEnd\Components\BuildRequestEngine\BuildRequestEngine.cs (1)
139_debugDumpState = Traits.Instance.DebugScheduler;
BackEnd\Components\Communications\NodeLauncher.cs (4)
103bool ensureStdOut = Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout; 303string useMSBuildServerEnvVarValue = Environment.GetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName); 308Environment.SetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName, "0"); 316Environment.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)
117Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout; 431if (Traits.Instance.DebugNodeCommunication)
BackEnd\Components\Logging\LoggingService.cs (1)
598bool? 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)
85!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)
155=> Traits.Instance.InProcNodeDisabled || _componentHost.BuildParameters.DisableInProcNode; 213_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)
384Traits.UpdateFromEnvironment();
BackEnd\Shared\BuildResult.cs (1)
89private int _version = Traits.Instance.EscapeHatches.DoNotVersionBuildResult ? 0 : 1;
BackEnd\TaskExecutionHost\TaskExecutionHost.cs (3)
186LogTaskInputs = Traits.Instance.EscapeHatches.LogTaskInputs; 189_propertyTrackingSettings = (PropertyTrackingSetting)Traits.Instance.LogPropertyTracking; 1010TaskFactoryEngineContext 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)
418private static readonly bool s_trace = Traits.Instance.DebugNodeCommunication;
Construction\Solution\SolutionFile.cs (1)
203internal static bool ShouldUseNewParser(string solutionFile) => Traits.Instance.SlnParsingWithSolutionPersistenceOptIn || FileUtilities.IsSolutionXFilename(solutionFile);
Construction\Solution\SolutionProjectGenerator.cs (2)
188_batchProjectTargets = Traits.Instance.SolutionBatchTargets; 1090if (Traits.Instance.EmitSolutionMetaproj)
Definition\Project.cs (1)
3817var canEvaluateElementsWithFalseConditions = Traits.Instance.EscapeHatches.EvaluateElementsWithFalseConditionInProjectEvaluation ?? !loadSettings.HasFlag(ProjectLoadSettings.DoNotEvaluateElementsWithFalseCondition);
Definition\ProjectCollection.cs (1)
336if (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)
Definition\Toolset.cs (1)
811Traits.Instance.ForceEvaluateAsFullFramework ? "Full" : "Core",
Evaluation\Evaluator.cs (10)
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()))}]"); 1167Traits.Instance.ForceEvaluateAsFullFramework ? "Full" : "Core"); 1762Traits.Instance.EscapeHatches.SdkReferencePropertyExpansion ?? 2300if (((_loadSettings & ProjectLoadSettings.IgnoreEmptyImports) != 0 || Traits.Instance.EscapeHatches.IgnoreEmptyImports) && ProjectRootElement.IsEmptyXmlFile(importFileUnescaped))
Evaluation\Expander.cs (4)
721return (options & ExpanderOptions.Truncate) != 0 && !Traits.Instance.EscapeHatches.DoNotTruncateConditions; 2506if (Traits.Instance.UseLazyWildCardEvaluation) 4757if (Traits.Instance.EnableAllPropertyFunctions) 4769if (Traits.Instance.EnableAllPropertyFunctions)
Evaluation\Expander\WellKnownFunctions.cs (1)
936if (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)
177if (!Traits.Instance.EscapeHatches.AlwaysDoImmutableFilesUpToDateCheck && FileClassifier.Shared.IsNonModifiable(projectFile))
Evaluation\PropertiesUseTracker.cs (1)
33private bool _warnForUninitializedProperties = BuildParameters.WarnOnUninitializedProperty || Traits.Instance.EscapeHatches.WarnOnUninitializedProperty;
Instance\ProjectInstance.cs (2)
2477var forcedProjectInstanceTranslationMode = Traits.Instance.EscapeHatches.ProjectInstanceTranslation; 3266if (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)
1434Traits.Instance.ForceAllTasksOutOfProcToTaskHost && 1510TaskFactoryEngineContext 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)
337_initialTargetOutputLogging = Traits.Instance.EnableTargetOutputLogging; 338_initialLogImports = Traits.Instance.EscapeHatches.LogProjectImports; 345Traits.Instance.EscapeHatches.LogProjectImports = true; 346Traits.Instance.EnableTargetOutputLogging = true; 347bool logPropertiesAndItemsAfterEvaluation = Traits.Instance.EscapeHatches.LogPropertiesAndItemsAfterEvaluation ?? true; 493Traits.Instance.EscapeHatches.LogProjectImports = _initialLogImports; 494Traits.Instance.EnableTargetOutputLogging = _initialTargetOutputLogging;
Logging\BinaryLogger\BuildEventArgsWriter.cs (1)
292if (Traits.LogAllEnvironmentVariables)
Logging\ParallelLogger\ParallelConsoleLogger.cs (1)
234if (Traits.LogAllEnvironmentVariables)
TelemetryInfra\InternalTelemetryConsumingLogger.cs (1)
45if (!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.UnitTests (10)
BackEnd\ResultsCache_Tests.cs (1)
421Traits.UpdateFromEnvironment();
BinaryLogger_Tests.cs (3)
116var initialEnableTargetOutputLogging = Traits.Instance.EnableTargetOutputLogging; 121Traits.Instance.EnableTargetOutputLogging = true; 196Traits.Instance.EnableTargetOutputLogging = initialEnableTargetOutputLogging;
BuildEventArgsSerialization_Tests.cs (2)
59Traits.LogAllEnvironmentVariables = serializeAllEnvironmentVariables; 82Traits.LogAllEnvironmentVariables = false;
ConsoleLogger_Tests.cs (4)
1222var logAllOriginal = Traits.LogAllEnvironmentVariables; 1237Traits.LogAllEnvironmentVariables = logAllOriginal; 1274var logAllOriginal = Traits.LogAllEnvironmentVariables; 1289Traits.LogAllEnvironmentVariables = logAllOriginal;
Microsoft.Build.Framework (16)
BuildEnvironmentHelper.cs (1)
570!Traits.Instance.ForceEvaluateAsFullFramework ? ".dll.config" :
DebugUtils.cs (1)
70if (Traits.Instance.DebugEngine)
FileUtilities.cs (3)
1244return Traits.Instance.CacheFileExistence 1268return Traits.Instance.CacheFileExistence 1292return Traits.Instance.CacheFileExistence
Loader\CoreCLRAssemblyLoader.cs (1)
60if (Traits.Instance.EscapeHatches.UseSingleLoadContext)
Loader\MSBuildLoadContext.cs (1)
106AssemblyLoadContext targetAlc = Framework.Traits.Instance.EscapeHatches.UseCustomLoadContextForDependenciesInToolsDirectory ? this : AssemblyLoadContext.Default;
NativeMethods.cs (4)
580bool isMaxPathRestricted = Traits.Instance.EscapeHatches.DisableLongPaths || IsMaxPathLegacyWindows(); 1149if (Traits.Instance.EscapeHatches.AlwaysDoImmutableFilesUpToDateCheck) 1178if (Traits.Instance.EscapeHatches.AlwaysUseContentTimestamp) 1192if ((data.fileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) == FILE_ATTRIBUTE_REPARSE_POINT && !Traits.Instance.EscapeHatches.UseSymlinkTimeInsteadOfTargetTime)
Telemetry\TelemetryManager.cs (1)
144Traits.Instance.SdkTelemetryOptOut;
Traits.cs (2)
14private static Traits _instance = new Traits(); 16public static Traits Instance
Utilities\FileMatcher.cs (2)
107if (Traits.Instance.MSBuildCacheFileEnumerations) 2128if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard)
Microsoft.Build.Tasks.Core (8)
AssemblyDependency\ReferenceTable.cs (1)
2739if (!Traits.Instance.EscapeHatches.TargetPathForRelatedFiles)
AssemblyDependency\ResolveAssemblyReference.cs (1)
2425Traits.Instance.EscapeHatches.CacheAssemblyInformation
CommunicationsUtilities.cs (1)
418private static readonly bool s_trace = Traits.Instance.DebugNodeCommunication;
Copy.cs (2)
321if (!Traits.Instance.EscapeHatches.CopyWithoutDelete && 1155int parallelism = Traits.Instance.CopyTaskParallelism;
CreateItem.cs (1)
170if (logDriveEnumeratingWildcard && Traits.Instance.ThrowOnDriveEnumeratingWildcard)
Exec.cs (1)
596if (!Traits.Instance.EscapeHatches.UseAutoRunWhenLaunchingProcessUnderCmd)
GenerateResource.cs (1)
3016if (Traits.Instance.EscapeHatches.UseMinimalResxParsingInCoreScenarios)
Microsoft.Build.UnitTests.Shared (1)
RunnerUtilities.cs (1)
175if (Traits.Instance.DebugUnitTests)
Microsoft.Build.Utilities.Core (3)
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)
1539if (Traits.Instance.EscapeHatches.AvoidUnicodeWhenWritingToolTaskBatch) 1577commandLineCommands = $"{(Traits.Instance.EscapeHatches.UseAutoRunWhenLaunchingProcessUnderCmd ? string.Empty : "/D ")}/C \"{batchFileForCommandLine}\"";
MSBuild (22)
CommandLine\CommandLineParser.cs (3)
138if (string.IsNullOrWhiteSpace(Traits.MSBuildLoggingArgs)) 143DeferredBuildMessageSeverity messageSeverity = Traits.Instance.EmitLogsAsMessage ? DeferredBuildMessageSeverity.Message : DeferredBuildMessageSeverity.Warning; 147List<string> envVarArgs = QuotingUtilities.SplitUnquoted(Traits.MSBuildLoggingArgs);
CommandLine\CommandLineSwitches.cs (1)
723if (!unquoteParameter || !Traits.Instance.EscapeHatches.UnquoteTargetSwitchParameters)
CommunicationsUtilities.cs (1)
418private static readonly bool s_trace = Traits.Instance.DebugNodeCommunication;
OutOfProcTaskHostNode.cs (3)
201private bool CallbacksSupported => _parentPacketVersion >= CallbacksMinPacketVersion || Traits.Instance.EnableTaskHostCallbacks; 211_debugCommunications = Traits.Instance.DebugNodeCommunication; 959_shutdownReason = buildComplete.PrepareForReuse && Traits.Instance.EscapeHatches.ReuseTaskHostNodes ? NodeEngineShutdownReason.BuildCompleteReuse : NodeEngineShutdownReason.BuildComplete;
XMake.cs (14)
314Environment.GetEnvironmentVariable(Traits.UseMSBuildServerEnvVarName) == "1" && 315!Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout && 708bool enableRestore = Traits.Instance.EnableRestoreFirst; 1561if (Traits.Instance.EnableRarNode) 1573if (!Traits.Instance.EscapeHatches.DoNotSendDeferredMessagesToBuildManager) 1827if (Traits.Instance.DebugEngine) 1948if (!Traits.Instance.ConsoleUseDefaultEncoding) 2326if (Traits.Instance.DebugEngine) 2422if (Traits.Instance.EscapeHatches.EnsureStdOutForChildNodesIsPrimaryStdout) 2587if (Traits.IsEnvVarOneOrTrue("CI") || Traits.IsEnvVarOneOrTrue("GITHUB_ACTIONS")) 3480if (cpuCount == 1 && !Traits.Instance.InProcNodeDisabled) 3574if (cpuCount == 1 && !Traits.Instance.InProcNodeDisabled) 3610if (cpuCount == 1 && !Traits.Instance.InProcNodeDisabled)