Skip to content

Conversation

@jonpryor
Copy link
Contributor

Context: #4467
Context: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=3590265&view=logs&j=96fd57f5-f69e-53c7-3d47-f67e6cf9b93e&t=7b19ceb3-907a-5a0d-b8ed-87e3f7335a58

When trying to integration test dotnet/java-interop#614, the
make all-tests job fails:

/usr/local/share/dotnet/sdk/2.2.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(137,5):
error NETSDK1045: The current .NET SDK does not support targeting .NET Core 3.1.  Either target .NET Core 2.2 or lower, or use a version of the .NET SDK that supports .NET Core 3.1.
[/Users/builder/azdo/_work/2/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.csproj]

Particularly odd about this is that we have an explicit job to install
.NET Core 3.1.100, so why is .NET Core 2.2.402 being used at all?!

Turns Out™ that while .NET Core 3.1.100 was installed, it was
installed into a different prefix; from the
install .NET Core 3.1.100 job:

##[debug]set DOTNET_ROOT=/Users/builder/azdo/_work/_tool/dotnet

and from the make jenkins job output:

DOTNET_ROOT = /Users/builder/azdo/_work/_tool/dotnet

Thus, the install .NET Core 3.1.100 job is installing .NET Core into
$HOME/azdo/_work/_tool/dotnet, while make all-tests is only
looking for .NET Core SDKs within /usr/local/share/dotnet, which
does not contain .NET Core 3.1 at all.

Where does the make all-tests path come from? It comes from
tools/xabuild, which sets the MSBuildSDKsPath environment
variable, and xabuild did not check $DOTNET_ROOT.

Update xabuild so that $DOTNET_ROOT is also probed for .NET Core
installation directories, and use the latest .NET Core SDK path
found between $DOTNET_ROOT and /usr/local/share/dotnet.

Context: dotnet#4467
Context: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=3590265&view=logs&j=96fd57f5-f69e-53c7-3d47-f67e6cf9b93e&t=7b19ceb3-907a-5a0d-b8ed-87e3f7335a58

When trying to integration test dotnet/java-interop#614, the
`make all-tests` job fails:

	/usr/local/share/dotnet/sdk/2.2.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(137,5):
	error NETSDK1045: The current .NET SDK does not support targeting .NET Core 3.1.  Either target .NET Core 2.2 or lower, or use a version of the .NET SDK that supports .NET Core 3.1.
	[/Users/builder/azdo/_work/2/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.csproj]

Particularly odd about this is that we have an explicit job to install
.NET Core 3.1.100, so why is .NET Core 2.2.402 being used at all?!

Turns Out™ that while .NET Core 3.1.100 was installed, it was
installed *into a different prefix*; from the
`install .NET Core 3.1.100` job:

	##[debug]set DOTNET_ROOT=/Users/builder/azdo/_work/_tool/dotnet

and from the `make jenkins` job output:

	DOTNET_ROOT = /Users/builder/azdo/_work/_tool/dotnet

Thus, the `install .NET Core 3.1.100` job is installing .NET Core into
`$HOME/azdo/_work/_tool/dotnet`, while `make all-tests` is only
looking for .NET Core SDKs within `/usr/local/share/dotnet`, which
does *not* contain .NET Core 3.1 at all.

Where does the `make all-tests` path come from?  It comes from
`tools/xabuild`, which sets the `MSBuildSDKsPath` environment
variable, and `xabuild` did not check `$DOTNET_ROOT`.

Update `xabuild` so that `$DOTNET_ROOT` is also probed for .NET Core
installation directories, and use the *latest* .NET Core SDK path
found between `$DOTNET_ROOT` and `/usr/local/share/dotnet`.
@jonpryor jonpryor requested a review from pjcollins March 27, 2020 23:42
@jonpryor jonpryor merged commit 98d6bb5 into dotnet:master Mar 28, 2020
jonpryor added a commit that referenced this pull request Mar 30, 2020
Context: #4467
Context: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=3590265&view=logs&j=96fd57f5-f69e-53c7-3d47-f67e6cf9b93e&t=7b19ceb3-907a-5a0d-b8ed-87e3f7335a58

When trying to integration test dotnet/java-interop#614, the
`make all-tests` job fails:

	/usr/local/share/dotnet/sdk/2.2.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(137,5):
	error NETSDK1045: The current .NET SDK does not support targeting .NET Core 3.1.  Either target .NET Core 2.2 or lower, or use a version of the .NET SDK that supports .NET Core 3.1.
	[/Users/builder/azdo/_work/2/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop.csproj]

Particularly odd about this is that we have an explicit job to install
.NET Core 3.1.100, so why is .NET Core 2.2.402 being used at all?!

Turns Out™ that while .NET Core 3.1.100 was installed, it was
installed *into a different prefix*; from the
`install .NET Core 3.1.100` job:

	##[debug]set DOTNET_ROOT=/Users/builder/azdo/_work/_tool/dotnet

and from the `make jenkins` job output:

	DOTNET_ROOT = /Users/builder/azdo/_work/_tool/dotnet

Thus, the `install .NET Core 3.1.100` job is installing .NET Core into
`$HOME/azdo/_work/_tool/dotnet`, while `make all-tests` is only
looking for .NET Core SDKs within `/usr/local/share/dotnet`, which
does *not* contain .NET Core 3.1 at all.

Where does the `make all-tests` path come from?  It comes from
`tools/xabuild`, which sets the `MSBuildSDKsPath` environment
variable, and `xabuild` did not check `$DOTNET_ROOT`.

Update `xabuild` so that `$DOTNET_ROOT` is also probed for .NET Core
installation directories, and use the *latest* .NET Core SDK path
found between `$DOTNET_ROOT` and `/usr/local/share/dotnet`.
@github-actions github-actions bot locked and limited conversation to collaborators Jan 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants