You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Commit 8898bc1 put too much faith into `$(MSBuildProjectDirectory)).
The problem is that `$(MSBuildProjectDirectory)` *isn't necessarily*
the path to `Directory.Build.props`; it's the directory for the
`.csproj` being built!
The *intent* for 8898bc1 is that e.g. `xamarin/xamarin-android`
should be able to create a `Java.Interop.override.props` file
alongside the `Java.Interop` git submodule, and the Java.Interop
build would use the overrides within `Java.Interop.override.props`.
That didn't happen; due to using `$(MSBuildProjectDirectory)`, the
build may instead attempting to import e.g.
`Java.Interop/src/Java.Interop.override.props`!
Project "$(MSBuildProjectDirectory).override.props" was not imported by "…/external/Java.Interop/Directory.Build.props" at (6,3), due to false condition;
(Exists('$(MSBuildProjectDirectory).override.props')) was evaluated as
(Exists('…/xamarin-android/external/Java.Interop/src/Java.Interop.override.props')).
Oops.
Fix the `<Import/>` expressions so that we instead try to import:
$([System.IO.Path]::GetDirectoryName($(MSBuildThisFileDirectory))).override.props
We need `$(MSBuildThisFileDirectory)`, as that's the easiest way to
get the checkout directory -- the directory containing
`Directory.Build.props` -- but `$(MSBuildThisFileDirectory)` always
ends in a directory separator character. Remove the directory
separator character by using `Path.GetDirectoryName()`.
This allows e.g. the `Java.Interop.csproj` build to appropriately
import `Java.Interop.override.props`.
0 commit comments