Fix using wrong SDK when restoring

DotnetCommand should be used so that MSBuildSDKsPath gets unset
This commit is contained in:
Daniel Plaisted 2018-11-29 23:40:21 -08:00
parent 7d461295be
commit 3df2eb5c8e

View file

@ -28,8 +28,6 @@ namespace Microsoft.DotNet.TestFramework
private bool _restored = false; private bool _restored = false;
private bool _built = false;
public TestAssetInstance(TestAssetInfo testAssetInfo, DirectoryInfo root) public TestAssetInstance(TestAssetInfo testAssetInfo, DirectoryInfo root)
{ {
if (testAssetInfo == null) if (testAssetInfo == null)
@ -94,20 +92,6 @@ namespace Microsoft.DotNet.TestFramework
return this; return this;
} }
public TestAssetInstance WithBuildFiles()
{
if (!_built)
{
WithRestoreFiles();
BuildRootProjectOrSolution();
_built = true;
}
return this;
}
public TestAssetInstance WithNuGetConfig(string nugetCache, string externalRestoreSources = null) public TestAssetInstance WithNuGetConfig(string nugetCache, string externalRestoreSources = null)
{ {
var thisAssembly = typeof(TestAssetInstance).GetTypeInfo().Assembly; var thisAssembly = typeof(TestAssetInstance).GetTypeInfo().Assembly;
@ -227,32 +211,6 @@ namespace Microsoft.DotNet.TestFramework
} }
} }
private void BuildRootProjectOrSolution()
{
string[] args = new string[] { "build" };
Console.WriteLine($"TestAsset Build '{TestAssetInfo.AssetName}'");
var commandResult = Command.Create(TestAssetInfo.DotnetExeFile.FullName, args)
.WorkingDirectory(Root.FullName)
.CaptureStdOut()
.CaptureStdErr()
.Execute();
int exitCode = commandResult.ExitCode;
if (exitCode != 0)
{
Console.WriteLine(commandResult.StdOut);
Console.WriteLine(commandResult.StdErr);
string message = string.Format($"TestAsset Build '{TestAssetInfo.AssetName}' Failed with {exitCode}");
throw new Exception(message);
}
}
private IEnumerable<FileInfo> GetProjectFiles() private IEnumerable<FileInfo> GetProjectFiles()
{ {
return Root.GetFiles(TestAssetInfo.ProjectFilePattern, SearchOption.AllDirectories); return Root.GetFiles(TestAssetInfo.ProjectFilePattern, SearchOption.AllDirectories);
@ -262,10 +220,8 @@ namespace Microsoft.DotNet.TestFramework
{ {
var restoreArgs = new string[] { "restore", projectFile.FullName }; var restoreArgs = new string[] { "restore", projectFile.FullName };
var commandResult = Command.Create(TestAssetInfo.DotnetExeFile.FullName, restoreArgs) var commandResult = new DotnetCommand()
.CaptureStdOut() .Execute(ArgumentEscaper.EscapeAndConcatenateArgArrayForProcessStart(restoreArgs));
.CaptureStdErr()
.Execute();
commandResult.Should().Pass(); commandResult.Should().Pass();
} }