-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
SdkResolver.cs
43 lines (39 loc) · 1.79 KB
/
SdkResolver.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#nullable disable
namespace Microsoft.Build.Framework
{
/// <summary>
/// An abstract interface for classes that can resolve a Software Development Kit (SDK).
/// </summary>
public abstract class SdkResolver
{
/// <summary>
/// Gets the name of the <see cref="SdkResolver"/> to be displayed in build output log.
/// </summary>
public abstract string Name { get; }
/// <summary>
/// Gets the self-described resolution priority order. MSBuild will sort resolvers
/// by this value.
/// </summary>
public abstract int Priority { get; }
/// <summary>
/// Resolves the specified SDK reference.
/// </summary>
/// <param name="sdkReference">A <see cref="SdkReference" /> containing the referenced SDKs be resolved.</param>
/// <param name="resolverContext">Context for resolving the SDK.</param>
/// <param name="factory">Factory class to create an <see cref="SdkResult" /></param>
/// <returns>
/// An <see cref="SdkResult" /> containing the resolved SDKs or associated error / reason
/// the SDK could not be resolved. Return <see langword="null"/> if the resolver is not
/// applicable for a particular <see cref="SdkReference"/>.
/// </returns>
/// <remarks>
/// Note: You must use <see cref="SdkResultFactory"/> to return a result.
/// </remarks>
///
public abstract SdkResult Resolve(SdkReference sdkReference,
SdkResolverContext resolverContext,
SdkResultFactory factory);
}
}