From 9d47269727968beddf0d2ece18ff63a269e92247 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Wed, 25 Mar 2020 12:51:31 -0400 Subject: [PATCH] [build] Provide a default $(Configuration) value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When `Directory.Build.props` is imported by MSBuild, the `$(Configuration)` property will only be defined if it was excplitily provided on the command line. As such, when building the repo when using **make**(1), it builds: $ make prepare $ make all # works! After `make all`, if we attempt to manually build a single `.csproj`, it may fail: $ msbuild tests/Java.Interop-Tests/Java.Interop-Tests.csproj ... BuildInteropTestJar: "" -source 1.6 -target 1.6 -bootclasspath "" -d "obj/Debug/it-classes" -classpath … …: error MSB3073: The command """ -source 1.6 -target 1.6 …" exited with code 127. Building a single `.csproj` works if the `Configuration` property is explicitly provided: $ msbuild tests/Java.Interop-Tests/Java.Interop-Tests.csproj /p:Configuration=Debug # no error Update `Directory.Build.props` so that if no `$(Configuration)` is provided we default to the Debug configuration. This allows all the relevant `$(Configuration)`-dependent properties to have correct and consistent values, which allows projects to build as intended: $ msbuild tests/Java.Interop-Tests/Java.Interop-Tests.csproj # no errors --- Directory.Build.props | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index e8bb0a2c5..6358997b6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,9 +2,8 @@ - <_Configuration Condition=" '$(Configuration)' != 'Gendarme' ">$(Configuration) - <_Configuration Condition=" '$(Configuration)' == 'Gendarme' ">Debug - <_OutputPath>$(MSBuildThisFileDirectory)bin\Build$(_Configuration)\ + Debug + <_OutputPath>$(MSBuildThisFileDirectory)bin\Build$(Configuration)\ - $(MSBuildThisFileDirectory)bin\Build$(_Configuration)-$(TargetFramework)\ - $(MSBuildThisFileDirectory)bin\$(_Configuration)-$(TargetFramework)\ - $(MSBuildThisFileDirectory)bin\Test$(_Configuration)-$(TargetFramework)\ + $(MSBuildThisFileDirectory)bin\Build$(Configuration)-$(TargetFramework)\ + $(MSBuildThisFileDirectory)bin\$(Configuration)-$(TargetFramework)\ + $(MSBuildThisFileDirectory)bin\Test$(Configuration)-$(TargetFramework)\ $(UtilityOutputFullPathCoreApps) $(ToolOutputFullPath) - $(MSBuildThisFileDirectory)bin\Build$(_Configuration)\ - $(MSBuildThisFileDirectory)bin\$(_Configuration)\ - $(MSBuildThisFileDirectory)bin\Test$(_Configuration)\ + $(MSBuildThisFileDirectory)bin\Build$(Configuration)\ + $(MSBuildThisFileDirectory)bin\$(Configuration)\ + $(MSBuildThisFileDirectory)bin\Test$(Configuration)\ $(ToolOutputFullPath)