| File: DiagnosticIds.cs | Web Access |
| Project: TaskAnalyzer.csproj (Microsoft.Build.TaskAuthoring.Analyzer) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.Build.TaskAuthoring.Analyzer { /// <summary> /// Diagnostic IDs for the thread-safe task analyzer. /// Using a distinct namespace from MSBuild build-time diagnostics (MSBxxxx). /// </summary> public static class DiagnosticIds { /// <summary>Critical APIs with no safe alternative (Environment.Exit, Console.*, ThreadPool).</summary> public const string CriticalError = "MSBuildTask0001"; /// <summary>APIs requiring TaskEnvironment alternatives.</summary> public const string TaskEnvironmentRequired = "MSBuildTask0002"; /// <summary>File APIs requiring absolute paths.</summary> public const string FilePathRequiresAbsolute = "MSBuildTask0003"; /// <summary>Potentially problematic APIs (Assembly.Load*, Activator.CreateInstance*).</summary> public const string PotentialIssue = "MSBuildTask0004"; /// <summary>Transitive unsafe API usage detected in task call chain.</summary> public const string TransitiveUnsafeCall = "MSBuildTask0005"; /// <summary>Task input property should use AbsolutePath, FileInfo, or DirectoryInfo instead of string.</summary> public const string PreferTypedPathParameter = "MSBuildTask0006"; /// <summary>Task input property should use ITaskItem<T> instead of ITaskItem with manual ItemSpec parsing.</summary> public const string PreferTypedTaskItem = "MSBuildTask0007"; /// <summary>Task input property has a relative default path that should be initialized in Execute() where TaskEnvironment can root it.</summary> public const string InitializeRelativeDefaultInExecute = "MSBuildTask0008"; /// <summary>Task property uses ITaskItem<T> with a type argument not supported by MSBuild's task parameter binder.</summary> public const string UnsupportedTaskItemType = "MSBuildTask0009"; /// <summary>Task property uses ITaskItem<T> with a type argument parsed through Convert.ChangeType.</summary> public const string CultureSensitiveTaskItemType = "MSBuildTask0010"; /// <summary>Task should receive TaskEnvironment through constructor injection.</summary> public const string PreferTaskEnvironmentConstructorInjection = "MSBuildTask0011"; /// <summary>Task declares a TaskEnvironment property but does not implement IMultiThreadableTask, so MSBuild never assigns it.</summary> public const string TaskEnvironmentNeverAssigned = "MSBuildTask0012"; /// <summary>Task implements IMultiThreadableTask but lacks [MSBuildMultiThreadableTask], so it still runs in an out-of-proc TaskHost.</summary> public const string MissingMultiThreadableTaskAttribute = "MSBuildTask0013"; /// <summary>[MSBuildMultiThreadableTask] is applied to a type MSBuild never routes as a task, so it has no effect.</summary> public const string MultiThreadableTaskAttributeHasNoEffect = "MSBuildTask0014"; } }