diff --git a/src/Core/References/NugetPackages.cs b/src/Core/References/NugetPackages.cs index 3a26cc2be1..94b1550505 100644 --- a/src/Core/References/NugetPackages.cs +++ b/src/Core/References/NugetPackages.cs @@ -208,8 +208,11 @@ public async Task Add(PackageIdentity pkgId, Action? statusCallback = nu await DownloadPackages(sourceCacheContext, packages, statusCallback); - this.Items = Items.Union(new PackageIdentity[] { pkgId }).ToArray(); - this.Assemblies = Assemblies.Union(packages.Reverse().SelectMany(GetAssemblies)).ToArray(); + lock (this) + { + this.Items = Items.Union(new PackageIdentity[] { pkgId }).ToArray(); + this.Assemblies = Assemblies.Union(packages.Reverse().SelectMany(GetAssemblies)).ToArray(); + } } } diff --git a/src/Core/References/References.cs b/src/Core/References/References.cs index 8b1590ebb7..bd430fba83 100644 --- a/src/Core/References/References.cs +++ b/src/Core/References/References.cs @@ -183,8 +183,11 @@ IOptions options /// public void AddAssemblies(params AssemblyInfo[] assemblies) { - Assemblies = Assemblies.Union(assemblies).ToImmutableArray(); - Reset(); + lock (this) + { + Assemblies = Assemblies.Union(assemblies).ToImmutableArray(); + Reset(); + } } ///