-
Notifications
You must be signed in to change notification settings - Fork 755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version 3.1.1 has different DLL versions, depending on the platform. #299
Comments
Hi @LifeCoder45 This is a result of #205. You need binding redirects in your app (and unit test project in this case). VS normally auto generates them. You might need an MSBuild property for some projects if it's not doing it by default: https://msdn.microsoft.com/en-us/library/2fc472t2(v=vs.110).aspx |
I had the same kind of issue with <dependentAssembly>
<assemblyIdentity name="System.Reactive.Interfaces" publicKeyToken="94bc3704cddfc263" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1000.0" newVersion="3.0.1000.0" />
</dependentAssembly> I blogged about it for my future reference. Why are System.Reactive.Core and System.Reactive.Interfaces not sharing the same version number? This caused some confusion while investigating the root of the problem. |
@epsitec this is likely due to the fact that we only need to build |
@shiftkey these are the platforms:
|
This has been fixed in the v4.0 alpha's on the MyGet feed |
Have you considered fixing the issue in 3.X and releasing a new version? Projects (e.g Powershell) have no easy way to add assembly redirects. |
There are no assembly redirects to add -- just make sure that the facades are in the same directory as the new dll. Would love to have you try it out and confirm. Install both the We cannot release a 3.x version with "the same" version number across assemblies because of issues that lead to #205 being designed and implemented. The surface area across the libraries was not the same and that lead to problems. The only fully-correct way to fix it with the old assembly scheme was to do what we did in #205. We realize that was painful and that's why we consolidated the types into a single library as a way to remedy all of the underlying issues. |
@onovotny apologies, I should have explained my scenario. We have a set of .NET 4.5.2 DLLs that depend on Rx, which we publish via our internal Nuget feed. We have a few .NET 4.6 projects that depend on those packages (and on Rx). The problem is that the 4.6 projects are referencing the 4.6 Rx DLLs, whilst the .NET4.5.2 DLLs reference the 4.5.2 Rx DLLs. As you may have guessed by now, this is why I was talking about assembly redirects. I had not taken into account the work done on #205. We've retargeted the 4.6 projects to 4.5.2 for now and will revise the versions in the nearby future (perhaps when Rx v4 comes out). |
When updating to the new Rx, and possibly the version just behind it, the version number of the various System.Reactive.* (Core, etc) seems to be different depending on what project target the Nuget is installed into.
The result of this is that all Observable related code breaks at runtime at least in our unit tests, and I assume in the Android, etc client as well.
When installed into a PCL, System.Reactive.Core comes from:
When installed into a unit test project, System.Reactive.Core comes from:
Using the Visual Studio Properties window on Project > References > System.Reactive.*, the PCL has the following values:
However, the unit test project has:
Running the single test in the following project produces the following output:
I assume this is due to the Nuget DLL versions being out of sync, but am not familiar enough with this codebase to confirm.
Here is a little project, run the single unit test to see the issue:
https://github.com/LifeCoder45/rx-issue
It has a class in the PCL:
https://github.com/LifeCoder45/rx-issue/blob/master/RxTest.Lib/Class1.cs
That this single unit test accesses:
https://github.com/LifeCoder45/rx-issue/blob/master/RxTest.Unit/UnitTest1.cs
The text was updated successfully, but these errors were encountered: