Skip to content
This repository was archived by the owner on Oct 4, 2021. It is now read-only.

Commit 62b3b46

Browse files
committed
[Core] Continue on error when resolving package dependencies.
Set ContinueOnError=ErrorAndContinue when running the MSBuild target ResolvePackageDependenciesDesignTime. This allows the target to run even if one of other MSBuild targets fails. For example, an unknown PackageReference may cause this to fail unless continue on error is set.
1 parent 4d02ec5 commit 62b3b46

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,6 +1201,9 @@ async Task<List<PackageDependency>> RunResolvePackageDependenciesTarget (Configu
12011201
context.BuilderQueue = BuilderQueue.ShortOperations;
12021202
context.LoadReferencedProjects = false;
12031203
context.LogVerbosity = MSBuildVerbosity.Quiet;
1204+
// Even though some targets may fail it may still be possible for the main resolve target to return
1205+
// information so we set ContinueOnError. This matches VS on Windows behaviour.
1206+
context.GlobalProperties.SetValue ("ContinueOnError", "ErrorAndContinue");
12041207

12051208
var result = await RunTargetInternal (monitor, "ResolvePackageDependenciesDesignTime", configuration, context);
12061209

main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,10 +1126,13 @@ public async Task UnknownNuGetPackageReferenceId_DesignTimeBuilds ()
11261126

11271127
using (var sol = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile)) {
11281128
var project = sol.GetAllProjects ().Single () as DotNetProject;
1129-
var refs = (await project.GetReferencedAssemblies (ConfigurationSelector.Default)).ToArray ();
1129+
var references = (await project.GetReferencedAssemblies (ConfigurationSelector.Default)).ToArray ();
1130+
var packageDependencies = (await project.GetPackageDependencies (ConfigurationSelector.Default, CancellationToken.None)).ToArray ();
11301131

1131-
Assert.IsTrue (refs.Any ());
1132-
Assert.IsTrue (refs.Any (r => r.FilePath.FileName == "Newtonsoft.Json.dll"));
1132+
Assert.IsTrue (references.Any ());
1133+
Assert.IsTrue (references.Any (r => r.FilePath.FileName == "Newtonsoft.Json.dll"));
1134+
Assert.IsTrue (packageDependencies.Any ());
1135+
Assert.IsTrue (packageDependencies.Any (p => p.Name == "Newtonsoft.Json"));
11331136
}
11341137
}
11351138

0 commit comments

Comments
 (0)