Skip to content

Commit

Permalink
Detect msbuild
Browse files Browse the repository at this point in the history
  • Loading branch information
antiufo committed Sep 21, 2016
1 parent 11e68f9 commit 44f275d
Showing 1 changed file with 28 additions and 3 deletions.
31 changes: 28 additions & 3 deletions RoslynLinqRewrite/RoslynLinqRewrite/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ private void EnsureInstalled()
var dir = Path.GetDirectoryName(typeof(Program).GetTypeInfo().Assembly.Location);
if (!File.Exists(Path.Combine(dir, "installed")) && !dir.Contains("bin\\Debug") && !dir.Contains("bin\\Release") )
{
Console.WriteLine("Installing dependencies for first use…");
var init = Path.Combine(dir, "Shaman.Roslyn.LinqRewrite.Initialization.dll");
var exe = Path.Combine(dir, "Shaman.Roslyn.LinqRewrite.Initialization.exe");
File.Copy(init, exe, true);
Expand Down Expand Up @@ -542,14 +543,38 @@ private static void CompileProject(Microsoft.CodeAnalysis.Project project, bool

private static void RunMsbuild(List<object> args)
{

var argsArray = args.ToArray();
var msbuildCandidates = new[] {
@"%ProgramFiles(x86)%\Microsoft Visual Studio\VS16\MSBuild\16.0\Bin\amd64\MSBuild.exe",
@"%ProgramFiles(x86)%\Microsoft Visual Studio\VS15\MSBuild\15.0\Bin\amd64\MSBuild.exe",
@"%ProgramFiles(x86)%\Microsoft Visual Studio\VS15Preview\MSBuild\15.0\Bin\amd64\MSBuild.exe",
@"%ProgramFiles(x86)%\MSBuild\15.0\Bin\amd64\MSBuild.exe",
@"%ProgramFiles(x86)%\MSBuild\14.0\Bin\amd64\MSBuild.exe",
@"%ProgramFiles(x86)%\MSBuild\12.0\Bin\amd64\MSBuild.exe",
@"%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe",
};
try
{
ProcessUtils.RunPassThrough("msbuild", args.ToArray());
ProcessUtils.RunPassThrough("msbuild", argsArray);
}
catch (Exception ex) when (!(ex is ProcessException))
{
ProcessUtils.RunPassThrough("xbuild", args.ToArray());
foreach (var candidate in msbuildCandidates)
{
try
{
var path = Environment.ExpandEnvironmentVariables(candidate);
if (File.Exists(path))
{
ProcessUtils.RunPassThrough(path, argsArray);
return;
}
}
catch (Exception)
{
}
}
ProcessUtils.RunPassThrough("xbuild", argsArray);
}
}

Expand Down

0 comments on commit 44f275d

Please sign in to comment.