Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 21, 2025

VSTHRD003 currently requires suppression at every call site when awaiting cached completed tasks. This adds a [CompletedTask] attribute that marks properties/methods/fields returning pre-completed tasks, eliminating redundant per-consumer suppressions.

Changes

Attribute distribution

  • Added CompletedTaskAttribute.cs as source content in buildTransitive/AdditionalFiles/
  • Attribute automatically included when installing the analyzer package
  • Updated .targets to compile .cs files from AdditionalFiles
  • Attribute supports both direct member application and assembly-level application

Analyzer enhancement

  • IsSymbolAlwaysOkToAwait now checks for CompletedTaskAttribute on symbols
  • Added support for assembly-level attributes with Member property to mark external types
  • Early exit for methods with the attribute to avoid unnecessary analysis
  • Preserves existing recognition of Task.CompletedTask, Task.FromResult, TplExtensions.*Task

Tests

  • Added coverage for properties, fields, methods, and Task<T> scenarios
  • Verified attribute suppresses warnings in JoinableTaskFactory.Run contexts
  • Added tests for assembly-level attribute usage with external types

Usage

Direct member annotation:

// Mark singleton completed tasks
[Microsoft.VisualStudio.Threading.CompletedTask]
private static readonly Task<bool> TrueTask = Task.FromResult(true);

// No VSTHRD003 warning when awaited
async Task TestAsync()
{
    await TrueTask;  // ✓ No warning
}

Assembly-level annotation for external types:

// Mark completed tasks in external libraries you don't control
[assembly: Microsoft.VisualStudio.Threading.CompletedTask(Member = "ExternalLibrary.ExternalClass.CompletedTaskProperty")]

async Task TestAsync()
{
    await ExternalLibrary.ExternalClass.CompletedTaskProperty;  // ✓ No warning
}

Fixes #1438

> [!WARNING]
>
>

Original prompt

This section details on the original issue you should resolve

<issue_title>VSTHRD003 support for marking known completed tasks as non-foreign</issue_title>
<issue_description>If I understand correctly, VSTHRD003 (Avoid awaiting foreign Tasks) is redundant on a task that is known to have completed already.

In the dotnet/project-system repo we have historically turned this analyzer off, and I'm investigating turning it on.

Most of the subsequent diagnostics are on singleton instances of completed tasks with well-known immutable values.

I'd like a way to annotate these values (mostly properties) to suppress VSTHRD003 when they're returned from methods and so forth. Today, it seems I have to suppress every consumer.</issue_description>

Comments on the Issue (you are @copilot in this section)

@drewnoakes I'm interested in ideas for the design of this. Happy to take a stab at implementing it, or we assign to Copilot.

One idea is to use SuppressMessage on the property. However then you get warnings about redundant suppressions.

The analyzer already supports Task.CompletedTask and Task.FromResult(...), though not TplExtensions.TrueTask and friends.

Perhaps we just allow anyone to define a Microsoft.VisualStudio.Threading.CompletedTaskAttribute attribute that indicates this information to the analyzer.

For example:

namespace Microsoft.VisualStudio.Threading;

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Method | AttributeTargets.Field, Inherited = false)]
internal class CompletedTaskAttribute : Attribute
{}

The analyzer could include this as a source content item, or consumers could define it themselves.</comment_new>
<comment_new>@drewnoakes
Let's see what Copilot can do.</comment_new>


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Add support for non-foreign tasks in VSTHRD003 Add CompletedTaskAttribute to suppress VSTHRD003 for known completed tasks Nov 21, 2025
Copilot AI requested a review from drewnoakes November 21, 2025 06:16
Copilot finished work on behalf of drewnoakes November 21, 2025 06:16
Comment on lines +15 to +17
If you have a property, method, or field that returns a pre-completed task (such as a cached task with a known value),
you can suppress this warning by applying the `[CompletedTask]` attribute to the member.
This attribute is automatically included when you install the `Microsoft.VisualStudio.Threading.Analyzers` package.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot what if the attribute could be applied at the assembly level, such that you could also apply this attribute to types you don't control. For example if I was using TplExtensions and it wasn't annotated:

[assembly: CompletedTask(Member = "System.Threading.TplExtensions.TrueTask")]

Or something like that. If this isn't feasible, or has major drawbacks, feel free to push back.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea! I've implemented assembly-level attribute support. You can now mark external members like this:

[assembly: CompletedTask(Member = "ExternalLibrary.ExternalClass.CompletedTaskProperty")]

The attribute now supports a Member property that accepts fully qualified names in the format Namespace.TypeName.MemberName. The analyzer checks assembly-level attributes and matches them against the symbols being analyzed. Multiple assembly-level attributes are supported for marking different external members.

Committed in d067b66.

Copy link
Contributor Author

Copilot AI commented Nov 21, 2025

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 0psvsblobprodwus2145.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • 2wrvsblobprodwus2180.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • 40vvsblobprodwus2135.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • 5zivsblobprodwus217.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • 77wvsblobprodwus2160.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • 7q7vsblobprodwus2144.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/AEA484FE9811915F06D02FE756E68B1B/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • 8yfvsblobprodwus2171.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • b15vsblobprodwus2164.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • balvsblobprodwus2129.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • cbvvsblobprodwus2131.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • cffvsblobprodwus218.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • d94vsblobprodwus2119.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/E1BF8C0FD5E391A267BF9C79E32F43A6/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • dyrvsblobprodwus2173.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • etjvsblobprodwus2172.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • fcwvsblobprodwus2113.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • g3xvsblobprodwus2151.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • h8evsblobprodwus2120.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • i01vsblobprodwus216.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/FE593E6AF23FDB0BE36376F548339E8C/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • ia4vsblobprodwus2112.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • isovsblobprodwus211.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • isvvsblobprodwus2147.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • jhgvsblobprodwus2167.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • jqivsblobprodwus2187.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • k4pvsblobprodwus2140.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • km4vsblobprodwus2183.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • lusvsblobprodwus2166.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • mdcvsblobprodwus2159.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/40092A0EBCDDE0FDE0834F13B5E29B51/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • mt2vsblobprodwus2110.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • n6wvsblobprodwus2123.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • nypvsblobprodwus2178.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • ox9vsblobprodwus2149.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
  • p2tvsblobprodwus2189.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • s8nvsblobprodwus2158.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • vd2vsblobprodwus2150.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • wlnvsblobprodwus2188.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/8B907FF7BCF960C2DFC6EFCD3F864E06/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • xumvsblobprodwus213.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • y1mvsblobprodwus2138.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/BAD17ED351CB0EEF5B11C55CCA2085E4/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • z2bvsblobprodwus2185.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • zaxvsblobprodwus215.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet build src/Microsoft.VisualStudio.Threading.Analyzers.CSharp/Microsoft.VisualStudio.Threading.Analyzers.CSharp.csproj (dns block)
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/5707D9CCD3909344C2384588AB311A3D/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • zd2vsblobprodwus2156.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • zt8vsblobprodwus2176.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • zugvsblobprodwus2169.vsblob.vsassets.io
    • Triggering command: /opt/hostedtoolcache/dotnet/dotnet dotnet restore --no-dependencies /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/D5B55DFC9E70C92859A4309871089FB3/missingpackages_workingdir --packages /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/vs-threading/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from drewnoakes November 21, 2025 14:08
Copilot finished work on behalf of drewnoakes November 21, 2025 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

VSTHRD003 support for marking known completed tasks as non-foreign

2 participants