After upgrading our projects (.NET Core 3) from Reactive 4.1.6 -> 4.2.0, our xunit tests failed to start with:
[11/10/2019 11:18:15.912 AM Error] Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Testhost process exited with error: Error:
An assembly specified in the application dependencies manifest (ProjectX.Tests.deps.json) was not found:
package: 'System.Reactive.Reference', version: '4.2.0.0'
path: 'System.Reactive.dll'
Unlike all other nuget packages, I noticed in VS that Reactive.dll now shows up in Solution Explorer->Project->Dependencies->Assembly as well as under Packages:

Reverting back to 4.1.6 removes the assembly reference and allows our unit tests to execute once again.
Do you have a small repro project?
Rx.NET has integration tests against the packages with .NET Core 3 on both Linux and Windows:
https://github.com/dotnet/reactive/blob/master/Rx.NET/Integration/LinuxTests/LinuxTests.csproj#L3
https://github.com/dotnet/reactive/blob/master/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj#L3
Unzip and run dotnet test
Do you have a small repro project?
Rx.NET has integration tests against the packages with .NET Core 3 on both Linux and Windows:
https://github.com/dotnet/reactive/blob/master/Rx.NET/Integration/LinuxTests/LinuxTests.csproj#L3
https://github.com/dotnet/reactive/blob/master/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj#L3
Hi @onovotny,
I noticed that the integration tests are using 4.2.0-preview.63. The preview version works correctly, but the release version doesn't.
System.Reactive.dll is not present in the output dir.
Strange is that solutions which I created in the past (before version 4.3.1) are working correctly.. I hope that this will help you somehow.
I have verified that the problem still persists in RX 4.3.2 by modifying my repro that I linked above:
> dotnet test
Test run for C:\Users\mattzink\source\repos\reactive-issue\build\bin\netcoreapp3.0\reactive-issue.tests.dll(.NETCoreApp,Version=v3.0)
Microsoft (R) Test Execution Command Line Tool Version 16.3.0
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Testhost process exited with error: Error:
An assembly specified in the application dependencies manifest (reactive-issue.tests.deps.json) was not found:
package: 'System.Reactive.Reference', version: '4.3.0.0'
path: 'System.Reactive.dll'
. Please check the diagnostic logs for more information.
Test Run Aborted.
@mattzink, couldn't be your problem related to this file Directory.Build.props?
@tfabian It's pretty standard, and we've never had an issues with any other package because of it. Is there something specific in that file that you see a problem with?
I've narrowed this down to failing only when the "UseCommonOutputDirectory" property is enabled in our Directory.Builds.props file, which is a standard MSBuild property that disables copying transitively referenced files to the output folder.
It appears that the non-standard way that the Reactive package >= v4.2.0 causes a direct assembly reference on projects is incompatible with this standard setting.
Hope this helps someone track down the underlying issue.
https://github.com/dotnet/reactive/blob/master/Rx.NET/Source/src/System.Reactive/build/System.Reactive.targets is the culprit. Dynamically adding transitive links to static assemblies based on configuration feels like a hack. Perhaps making the Windows specific Rx it's own NuGet package would be a better approach?
also the netstandard version should not have windowsruntime in its dependencies. It causes dependency errors with xamarin ios.

That library has some structs/interfaces that are interop and are part of the .NET Standard. Not much we can do about that but the assembly is on all platforms.
So is the intended behavior that a netcoreapp3.1 TFM app that runs on Linux should be linked to the .net standard 2.0 rx assembly, even though a .net core 3.0 rx assembly exists in the nuget package?
@mattzink That is correct. The netcore 3.0 output is only intended for WPF/WinForms on .NET Core on Windows. Everything else is expected to use the .net standard 2.0 version. That's what the custom targets do.
Most helpful comment
https://github.com/dotnet/reactive/blob/master/Rx.NET/Source/src/System.Reactive/build/System.Reactive.targets is the culprit. Dynamically adding transitive links to static assemblies based on configuration feels like a hack. Perhaps making the Windows specific Rx it's own NuGet package would be a better approach?