Skip to content

Commit 41211ab

Browse files
committed
running dotnet msbuild instead of old msbuild
Obsolete Proj, ProjArgs, Exec, ExecArgs
1 parent 5417b1a commit 41211ab

File tree

4 files changed

+29
-59
lines changed

4 files changed

+29
-59
lines changed

src/GitVersionCore/Arguments.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections.Generic;
23
using GitVersion.Configuration;
34
using GitVersion.Logging;
@@ -27,9 +28,13 @@ public class Arguments
2728
public string LogFilePath;
2829
public string ShowVariable;
2930

31+
[Obsolete]
3032
public string Proj;
33+
[Obsolete]
3134
public string ProjArgs;
35+
[Obsolete]
3236
public string Exec;
37+
[Obsolete]
3338
public string ExecArgs;
3439

3540
public bool UpdateWixVersionFile;

src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.IO;
33
using System.Text;
44
using GitTools.Testing;
5-
using GitVersion;
65
using NUnit.Framework;
76
using Shouldly;
87
using GitVersion.Helpers;
@@ -23,20 +22,16 @@ public void RunExecViaCommandLine()
2322

2423
var buildFile = Path.Combine(fixture.RepositoryPath, "RunExecViaCommandLine.csproj");
2524
File.Delete(buildFile);
26-
const string buildFileContent = @"<?xml version=""1.0"" encoding=""utf-8""?>
27-
<Project ToolsVersion=""4.0"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
28-
<Target Name=""OutputResults"">
29-
<Message Text=""GitVersion_FullSemVer: $(GitVersion_FullSemVer)""/>
30-
</Target>
31-
</Project>";
32-
File.WriteAllText(buildFile, buildFileContent);
33-
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath, ExecCommand.BuildTool, "RunExecViaCommandLine.csproj /target:OutputResults");
25+
26+
File.WriteAllText(buildFile, MsBuildProjectArgTest.TestProject);
27+
var exec = "dotnet";
28+
var execArgs = "msbuild RunExecViaCommandLine.csproj /target:OutputResults";
29+
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath, exec, execArgs);
3430

3531
result.ExitCode.ShouldBe(0, result.Log);
3632
result.Log.ShouldContain("GitVersion_FullSemVer: 1.2.4+1");
3733
}
3834

39-
4035
[Test]
4136
public void InvalidArgumentsExitCodeShouldNotBeZero()
4237
{
@@ -79,7 +74,7 @@ public void CheckBuildServerVerbosityConsole(string verbosityArg, string expecte
7974
[Test]
8075
public void WorkingDirectoryWithoutGitFolderCrashesWithInformativeMessage()
8176
{
82-
var results = GitVersionHelper.ExecuteIn(System.Environment.SystemDirectory, null, isTeamCity: false, logToFile: false);
77+
var results = GitVersionHelper.ExecuteIn(Environment.SystemDirectory, null, isTeamCity: false, logToFile: false);
8378
results.Output.ShouldContain("Can't find the .git directory in");
8479
}
8580

src/GitVersionExe.Tests/MsBuildProjectArgTest.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ namespace GitVersionExe.Tests
88
[TestFixture]
99
public class MsBuildProjectArgTest
1010
{
11+
public const string TestProject = @"
12+
<Project Sdk=""Microsoft.NET.Sdk"">
13+
<PropertyGroup>
14+
<TargetFramework>netstandard2.0</TargetFramework>
15+
</PropertyGroup>
16+
<Target Name=""OutputResults"">
17+
<Message Text=""GitVersion_FullSemVer: $(GitVersion_FullSemVer)"" Importance=""High""/>
18+
</Target>
19+
</Project>
20+
";
21+
1122
[Test]
1223
public void RunsMsBuildProvideViaCommandLineArg()
1324
{
@@ -17,13 +28,7 @@ public void RunsMsBuildProvideViaCommandLineArg()
1728

1829
var buildFile = Path.Combine(fixture.RepositoryPath, "RunsMsBuildProvideViaCommandLineArg.proj");
1930
File.Delete(buildFile);
20-
const string buildFileContent = @"<?xml version=""1.0"" encoding=""utf-8""?>
21-
<Project ToolsVersion=""4.0"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
22-
<Target Name=""OutputResults"">
23-
<Message Text=""GitVersion_FullSemVer: $(GitVersion_FullSemVer)""/>
24-
</Target>
25-
</Project>";
26-
File.WriteAllText(buildFile, buildFileContent);
31+
File.WriteAllText(buildFile, TestProject);
2732
var result = GitVersionHelper.ExecuteIn(fixture.RepositoryPath, projectFile: "RunsMsBuildProvideViaCommandLineArg.proj", projectArgs: "/target:OutputResults");
2833

2934
result.ExitCode.ShouldBe(0);

src/GitVersionExe/ExecCommand.cs

Lines changed: 6 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public class ExecCommand : IExecCommand
2222
private readonly ILog log;
2323
private readonly IGitVersionCalculator gitVersionCalculator;
2424
private readonly IOptions<Arguments> options;
25-
public static readonly string BuildTool = GetMsBuildToolPath();
2625

2726
public ExecCommand(IFileSystem fileSystem, IBuildServerResolver buildServerResolver, ILog log, IGitVersionCalculator gitVersionCalculator, IOptions<Arguments> options)
2827
{
@@ -79,55 +78,21 @@ public void Execute()
7978
if (arguments.UpdateAssemblyInfo)
8079
{
8180
assemblyInfoUpdater.Update();
82-
}
83-
84-
var execRun = RunExecCommandIfNeeded(arguments, arguments.TargetPath, variables, log);
85-
var msbuildRun = RunMsBuildIfNeeded(arguments, arguments.TargetPath, variables, log);
86-
87-
if (!execRun && !msbuildRun)
88-
{
8981
assemblyInfoUpdater.CommitChanges();
90-
//TODO Put warning back
91-
//if (!context.CurrentBuildServer.IsRunningInBuildAgent())
92-
//{
93-
// Console.WriteLine("WARNING: Not running in build server and /ProjectFile or /Exec arguments not passed");
94-
// Console.WriteLine();
95-
// Console.WriteLine("Run GitVersion.exe /? for help");
96-
//}
9782
}
98-
}
9983

100-
private static string GetMsBuildToolPath()
101-
{
102-
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
103-
{
104-
return @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe";
105-
}
106-
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
107-
{
108-
return "/usr/bin/msbuild";
109-
}
110-
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
111-
{
112-
return "/Library/Frameworks/Mono.framework/Versions/Current/Commands/msbuild";
113-
}
114-
throw new Exception("MsBuild not found");
84+
RunExecCommandIfNeeded(arguments, arguments.TargetPath, variables, log);
85+
RunMsBuildIfNeeded(arguments, arguments.TargetPath, variables, log);
11586
}
116-
87+
11788
private static bool RunMsBuildIfNeeded(Arguments args, string workingDirectory, VersionVariables variables, ILog log)
11889
{
11990
if (string.IsNullOrEmpty(args.Proj)) return false;
12091

121-
log.Info($"Launching build tool {BuildTool} \"{args.Proj}\" {args.ProjArgs}");
122-
var results = ProcessHelper.Run(
123-
m => log.Info(m), m => log.Error(m),
124-
null, BuildTool, $"\"{args.Proj}\" {args.ProjArgs}", workingDirectory,
125-
GetEnvironmentalVariables(variables));
126-
127-
if (results != 0)
128-
throw new WarningException("MSBuild execution failed, non-zero return code");
92+
args.Exec = "dotnet";
93+
args.ExecArgs = $"msbuild \"{args.Proj}\" {args.ProjArgs}";
12994

130-
return true;
95+
return RunExecCommandIfNeeded(args, workingDirectory, variables, log);
13196
}
13297

13398
private static bool RunExecCommandIfNeeded(Arguments args, string workingDirectory, VersionVariables variables, ILog log)

0 commit comments

Comments
 (0)