Implement RestorePackages in MSBuild.
This adds the DotNetTool custom task, with `dotnet restore` implemented.
This commit is contained in:
parent
0d37da4d0d
commit
aff23d00f4
2 changed files with 105 additions and 1 deletions
85
build_projects/dotnet-cli-build/DotNetTool.cs
Normal file
85
build_projects/dotnet-cli-build/DotNetTool.cs
Normal file
|
@ -0,0 +1,85 @@
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Build
|
||||
{
|
||||
public abstract class DotNetTool : ToolTask
|
||||
{
|
||||
private const string ExeName = "dotnet.exe";
|
||||
|
||||
public DotNetTool()
|
||||
{
|
||||
}
|
||||
|
||||
protected abstract string Command { get; }
|
||||
|
||||
protected abstract string Args { get; }
|
||||
|
||||
public string WorkingDirectory { get; set; }
|
||||
|
||||
protected override string ToolName
|
||||
{
|
||||
get { return ExeName; }
|
||||
}
|
||||
|
||||
protected override MessageImportance StandardOutputLoggingImportance
|
||||
{
|
||||
get { return MessageImportance.High; } // or else the output doesn't get logged by default
|
||||
}
|
||||
|
||||
protected override string GenerateFullPathToTool()
|
||||
{
|
||||
string path = ToolPath;
|
||||
|
||||
// if ToolPath was not provided by the MSBuild script
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
Log.LogError($"Could not find the Path to {ExeName}");
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
protected override string GetWorkingDirectory()
|
||||
{
|
||||
return WorkingDirectory ?? base.GetWorkingDirectory();
|
||||
}
|
||||
|
||||
protected override string GenerateCommandLineCommands()
|
||||
{
|
||||
return $"{Command} {Args}";
|
||||
}
|
||||
|
||||
protected override void LogToolCommand(string message)
|
||||
{
|
||||
base.LogToolCommand($"{GetWorkingDirectory()}> {message}");
|
||||
}
|
||||
}
|
||||
|
||||
public class DotNetRestore : DotNetTool
|
||||
{
|
||||
protected override string Command
|
||||
{
|
||||
get { return "restore"; }
|
||||
}
|
||||
|
||||
protected override string Args
|
||||
{
|
||||
get { return $"{GetVerbosity()}"; }
|
||||
}
|
||||
|
||||
public string Verbosity { get; set; }
|
||||
|
||||
private string GetVerbosity()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Verbosity))
|
||||
{
|
||||
return $"--verbosity {Verbosity}";
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue