Skip to content

Commit c67d9d9

Browse files
authored
Fix CA2025: Unawaited tasks that use 'IDisposable' instances ... (#49040)
1 parent ddc320a commit c67d9d9

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

test/Microsoft.NET.TestFramework/Commands/NuGetExeRestoreCommand.cs

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,6 @@ public NuGetExeRestoreCommand(ITestOutputHelper log, string projectRootPath, str
2424

2525
protected override SdkCommandSpec CreateCommand(IEnumerable<string> args)
2626
{
27-
var newArgs = new List<string>();
28-
29-
newArgs.Add("restore");
30-
31-
newArgs.Add(FullPathProjectFile);
32-
33-
newArgs.Add("-PackagesDirectory");
34-
newArgs.Add(PackagesDirectory ?? TestContext.Current.NuGetCachePath ?? string.Empty);
35-
36-
newArgs.AddRange(args);
37-
3827
if (string.IsNullOrEmpty(TestContext.Current.NuGetExePath))
3928
{
4029
throw new InvalidOperationException("Path to nuget.exe not set");
@@ -58,20 +47,28 @@ protected override SdkCommandSpec CreateCommand(IEnumerable<string> args)
5847
"https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" :
5948
$"https://dist.nuget.org/win-x86-commandline/v{NuGetExeVersion}/nuget.exe";
6049

61-
using (var client = new System.Net.Http.HttpClient())
62-
using (var response = client.GetAsync(url).ConfigureAwait(false).GetAwaiter().GetResult())
63-
using (var fs = new FileStream(nugetExePath, FileMode.CreateNew))
50+
DownloadNuGetAsync().ConfigureAwait(false).GetAwaiter().GetResult();
51+
52+
async Task DownloadNuGetAsync()
6453
{
65-
#pragma warning disable CA2025 // we force synchronous so sourceCacheContext can't be disposed early
66-
response.Content.CopyToAsync(fs).ConfigureAwait(false).GetAwaiter().GetResult();
67-
#pragma warning restore CA2025
54+
using var client = new System.Net.Http.HttpClient();
55+
using var response = await client.GetAsync(url).ConfigureAwait(false);
56+
using var fs = new FileStream(nugetExePath, FileMode.CreateNew);
57+
await response.Content.CopyToAsync(fs).ConfigureAwait(false);
6858
}
6959
}
7060

7161
var ret = new SdkCommandSpec()
7262
{
7363
FileName = nugetExePath,
74-
Arguments = newArgs
64+
Arguments =
65+
[
66+
"restore",
67+
FullPathProjectFile,
68+
"-PackagesDirectory",
69+
PackagesDirectory ?? TestContext.Current.NuGetCachePath ?? string.Empty,
70+
.. args
71+
]
7572
};
7673

7774
TestContext.Current.AddTestEnvironmentVariables(ret.Environment);

0 commit comments

Comments
 (0)