Fix build-base-path to be converted to a full path.

This allows commands to run in different working directories and pass around the full path to the build-base-path, instead of a relative path.
This commit is contained in:
Eric Erhardt 2016-05-02 12:21:12 -05:00
parent f2d917ed2e
commit 6249829e68
5 changed files with 22 additions and 4 deletions

View file

@ -223,5 +223,19 @@ namespace Microsoft.DotNet.Tools.Common
return Path.GetExtension(filePath).Equals(extension, comparison);
}
/// <summary>
/// Gets the fully-qualified path without failing if the
/// path is empty.
/// </summary>
public static string GetFullPath(string path)
{
if (string.IsNullOrWhiteSpace(path))
{
return path;
}
return Path.GetFullPath(path);
}
}
}

View file

@ -6,6 +6,7 @@ using Microsoft.DotNet.Cli.CommandLine;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.InternalAbstractions;
using Microsoft.DotNet.ProjectModel;
using Microsoft.DotNet.Tools.Common;
using NuGet.Frameworks;
// This class is responsible with defining the arguments for the Compile verb.
@ -97,7 +98,7 @@ namespace Microsoft.DotNet.Tools.Compiler
}
OutputValue = _outputOption.Value();
BuildBasePathValue = _buildBasePath.Value();
BuildBasePathValue = PathUtility.GetFullPath(_buildBasePath.Value());
ConfigValue = _configurationOption.Value() ?? Constants.DefaultConfiguration;
RuntimeValue = _runtimeOption.Value();
VersionSuffixValue = _versionSuffixOption.Value();

View file

@ -7,6 +7,7 @@ using System.Linq;
using Microsoft.DotNet.Cli.CommandLine;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.ProjectModel;
using Microsoft.DotNet.Tools.Common;
using Microsoft.DotNet.Tools.Pack;
namespace Microsoft.DotNet.Tools.Compiler
@ -61,7 +62,7 @@ namespace Microsoft.DotNet.Tools.Compiler
var configValue = configuration.Value() ?? Cli.Utils.Constants.DefaultConfiguration;
var outputValue = output.Value();
var buildBasePathValue = buildBasePath.Value();
var buildBasePathValue = PathUtility.GetFullPath(buildBasePath.Value());
var contexts = ProjectContext.CreateContextForEachFramework(pathValue, settings);
var project = contexts.First().ProjectFile;

View file

@ -6,6 +6,7 @@ using System.IO;
using Microsoft.DotNet.Cli.CommandLine;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.ProjectModel;
using Microsoft.DotNet.Tools.Common;
namespace Microsoft.DotNet.Tools.Publish
{
@ -37,7 +38,7 @@ namespace Microsoft.DotNet.Tools.Publish
publish.Framework = framework.Value();
publish.Runtime = runtime.Value();
publish.BuildBasePath = buildBasePath.Value();
publish.BuildBasePath = PathUtility.GetFullPath(buildBasePath.Value());
publish.OutputPath = output.Value();
publish.Configuration = configuration.Value() ?? Constants.DefaultConfiguration;
publish.NativeSubdirectories = nativeSubdirectories.HasValue();

View file

@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.IO;
using Microsoft.DotNet.Cli.CommandLine;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.Tools.Common;
using NuGet.Frameworks;
using static System.Int32;
@ -103,7 +104,7 @@ namespace Microsoft.DotNet.Tools.Test
}
Output = _outputOption.Value();
BuildBasePath = _buildBasePath.Value();
BuildBasePath = PathUtility.GetFullPath(_buildBasePath.Value());
Config = _configurationOption.Value() ?? Constants.DefaultConfiguration;
Runtime = _runtimeOption.Value();
NoBuild = _noBuildOption.HasValue();