From 749cbe3bf228775ae5e28cc807ccdebe44af590f Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Wed, 24 Feb 2021 14:47:33 +0100 Subject: [PATCH] Improve initialization of Language property During regular builds MSBuild initializes `Language` to the language of the currently building project, e.g. C#. However, when running some targets like `pack` this doesn't happen. Therefore GitVersion has to add a default value for `Language`. Unfortunately `Language` is also an environment variable that GNU gettext uses, so the `pack` target will fail on most Linux systems where that environment variable is set. This change implements a fix by additionally checking `DefaultLanguageSourceExtension` which gets set by MSBuild at the same time as `Language`. If that isn't set we can be pretty sure that `Language` didn't get set automatically by MSBuild and can set a default value. This will cause existing builds to break IF they rely on being able to explicitly set `Language` to a value different from C#. However, I don't think this is a scenario that happens very often, and it can be easily worked around by setting the `DefaultLanguageSourceExtension` property to a non-empty value. This fixes #2591. --- src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props index 4f8de20607..77c681dde7 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props @@ -4,7 +4,7 @@ $([MSBuild]::EnsureTrailingSlash($(BaseIntermediateOutputPath)))gitversion.json - C# + C# $(MSBuildProjectDirectory)/../ $(SolutionDir) $(MSBuildProjectDirectory)