Skip to content

Commit 5671084

Browse files
committed
adapts msbuild tasks execution
adapts msbuild tasks execution to use action with task parameter. removes net framework check on GitVersionTask. adds condition to msbuild targets.
1 parent 2c0df38 commit 5671084

File tree

4 files changed

+18
-17
lines changed

4 files changed

+18
-17
lines changed

src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ public bool TryGetSemanticVersion(IGitVersionConfiguration configuration, out Se
1717

1818
private bool TryGetSemanticVersion(string? versionPatternPattern,
1919
string? tagPrefix,
20-
SemanticVersionFormat format, out SemanticVersionResult result)
20+
SemanticVersionFormat format,
21+
// ReSharper disable once OutParameterValueIsAlwaysDiscarded.Local
22+
out SemanticVersionResult result)
2123
{
2224
var versionPatternRegex = RegexPatterns.Cache.GetOrAdd(GetVersionInBranchPattern(versionPatternPattern));
2325
result = default;

src/GitVersion.MsBuild/GitVersionTasks.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@ public static bool Execute(GitVersionTaskBase task)
1717
var executor = serviceProvider.GetRequiredService<IGitVersionTaskExecutor>();
1818
return task switch
1919
{
20-
GetVersion getVersion => ExecuteGitVersionTask(getVersion, () => executor.GetVersion(getVersion)),
21-
UpdateAssemblyInfo updateAssemblyInfo => ExecuteGitVersionTask(updateAssemblyInfo, () => executor.UpdateAssemblyInfo(updateAssemblyInfo)),
22-
GenerateGitVersionInformation generateGitVersionInformation => ExecuteGitVersionTask(generateGitVersionInformation, () => executor.GenerateGitVersionInformation(generateGitVersionInformation)),
23-
WriteVersionInfoToBuildLog writeVersionInfoToBuildLog => ExecuteGitVersionTask(writeVersionInfoToBuildLog, () => executor.WriteVersionInfoToBuildLog(writeVersionInfoToBuildLog)),
20+
GetVersion getVersion => ExecuteGitVersionTask(getVersion, executor.GetVersion),
21+
UpdateAssemblyInfo updateAssemblyInfo => ExecuteGitVersionTask(updateAssemblyInfo, executor.UpdateAssemblyInfo),
22+
GenerateGitVersionInformation generateGitVersionInformation => ExecuteGitVersionTask(generateGitVersionInformation, executor.GenerateGitVersionInformation),
23+
WriteVersionInfoToBuildLog writeVersionInfoToBuildLog => ExecuteGitVersionTask(writeVersionInfoToBuildLog, executor.WriteVersionInfoToBuildLog),
2424
_ => throw new NotSupportedException($"Task type {task.GetType().Name} is not supported")
2525
};
2626
}
2727

28-
private static bool ExecuteGitVersionTask<T>(T task, Action action)
28+
private static bool ExecuteGitVersionTask<T>(T task, Action<T> action)
2929
where T : GitVersionTaskBase
3030
{
3131
var taskLog = task.Log;
3232
try
3333
{
34-
action();
34+
action(task);
3535
}
3636
catch (WarningException errorException)
3737
{

src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,6 @@
2121
</PropertyGroup>
2222

2323
<PropertyGroup>
24-
<!-- The GitVersion task is explicitly disabled when running on the .NET Framework because it's no longer supported.
25-
If a project that uses GitVersion.MsBuild is opened in Visual Studio,
26-
the task will be turned off because Visual Studio operates on the .NET Framework's version of MSBuild.
27-
However, you can still execute GitVersion.MsBuild as part of the `dotnet build` or `dotnet msbuild` commands. -->
28-
<DisableGitVersionTask Condition=" '$(MSBuildRuntimeType)' != 'Core' ">true</DisableGitVersionTask>
29-
3024
<DisableGitVersionTask Condition=" '$(DisableGitVersionTask)' == '' ">false</DisableGitVersionTask>
3125

3226
<!-- Property that enables WriteVersionInfoToBuildLog -->

src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,15 @@
1818
<GitVersionAssemblyFile Condition="'$(GitVersionAssemblyFile)' == ''">$([MSBuild]::EnsureTrailingSlash($(MSBuildThisFileDirectory)$(GitVersionTargetFramework)))GitVersion.MsBuild.dll</GitVersionAssemblyFile>
1919
</PropertyGroup>
2020

21-
<UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)" />
22-
<UsingTask TaskName="GenerateGitVersionInformation" AssemblyFile="$(GitVersionAssemblyFile)" />
23-
<UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" />
24-
<UsingTask TaskName="UpdateAssemblyInfo" AssemblyFile="$(GitVersionAssemblyFile)" />
21+
<UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition="$(MSBuildRuntimeType) == 'Full'" />
22+
<UsingTask TaskName="GenerateGitVersionInformation" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition="$(MSBuildRuntimeType) == 'Full'" />
23+
<UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition="$(MSBuildRuntimeType) == 'Full'" />
24+
<UsingTask TaskName="UpdateAssemblyInfo" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" TaskFactory="TaskHostFactory" Condition="$(MSBuildRuntimeType) == 'Full'" />
25+
26+
<UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition="$(MSBuildRuntimeType) == 'Core'" />
27+
<UsingTask TaskName="GenerateGitVersionInformation" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition="$(MSBuildRuntimeType) == 'Core'" />
28+
<UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition="$(MSBuildRuntimeType) == 'Core'" />
29+
<UsingTask TaskName="UpdateAssemblyInfo" AssemblyFile="$(GitVersionAssemblyFile)" Runtime="NET" Condition="$(MSBuildRuntimeType) == 'Core'" />
2530

2631
<Target Name="RunGitVersion" Condition="'$(DisableGitVersionTask)' == 'false'">
2732
<Exec Command="$(GitVersionFileExe) &quot;$(MSBuildProjectDirectory)&quot; $(GitVersion_ToolArgments)" />

0 commit comments

Comments
 (0)