Skip to content
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

Upgrade Akavache to the new version of Rx #307

Closed
ghuntley opened this issue Jul 8, 2016 · 32 comments
Closed

Upgrade Akavache to the new version of Rx #307

ghuntley opened this issue Jul 8, 2016 · 32 comments
Labels

Comments

@ghuntley
Copy link
Member

ghuntley commented Jul 8, 2016

No description provided.

@ghuntley
Copy link
Member Author

Currently blocked by Splat which needs to upgrade to netstandard. Unit tests won't be testable until rxui7-master comes out due to depednancies.

@msassanelli
Copy link

Today a new version of Splat released. When do you plan to update Akavache to support new version of Rx?

@RichiCoder1
Copy link

RichiCoder1 commented Dec 16, 2016

Just ran into this today since I have to conflicting versions of System.Reactive

@arthurrump
Copy link

Any plans on this? I want to use both Rx.NET v3 and Akavache in my project, and because of the renaming of the Rx packages, I get the same error as @RichiCoder1:

Payload contains two or more files with the same destination path 'System.Reactive.Core.dll'. Source files: 
C:\Users\me\.nuget\packages\Rx-Core\2.2.5\lib\windows8\System.Reactive.Core.dll
C:\Users\me\.nuget\packages\System.Reactive.Core\3.1.1\lib\uap10.0\System.Reactive.Core.dll

arthurrump added a commit to arthurrump/Zermelo.App.UWP that referenced this issue Dec 30, 2016
ReactiveUI is too much for this project, it doesn't work the way I want
it to. Akavache will be used later, but currently conflicts with the new
versions of Rx.NET. See reactiveui/Akavache#307.
@CR4567
Copy link

CR4567 commented Mar 15, 2017

I'm running into the same problem. Any news on this?

@LuoyeAn
Copy link

LuoyeAn commented Mar 30, 2017

any solution for this? I am hitting it.

@Bishbulb
Copy link

Has anyone successfully implemented a workaround where they can use Akavache + Rx.Net version 3 in the same project?

@PureWeen
Copy link
Collaborator

PureWeen commented Jul 9, 2017

I haven't tested this extensively but I got this wired up and working
https://github.com/PureWeen/ReactiveUI.XamlForms.Sample/tree/akavache_duck
Basically Akavache gets put in a box and exposed via dynamics. The platform projects all use Rx3 and because the apis didn't really change it seems to work. It's a little hacky but might work for the time being :-)

On the more productive side of things I made an effort towards a netstandard version of akavache with upgraded Rx libraries
https://github.com/PureWeen/Akavache/tree/netstandard

I've tested it a little bit inside an android app and nothing has caught fire yet :-)

@johncruz24
Copy link

Any updated on your branch @PureWeen? It would be awesome if this works and we can create PR for this so that it can be merged to the akavache master branch.

@PureWeen
Copy link
Collaborator

Nothing too exciting yet...

I fixed up the unit tests so they all run and pass so in theory one can just compile and run and it'll all work great :-)

I'm hoping to get the cake build setup here in the next few days though so it can just push to myget and be easier to test

@PureWeen
Copy link
Collaborator

alright checked in first version of the cake file

https://github.com/PureWeen/Akavache/blob/netstandard/build.cake

seems to work. I'm not too sure yet how to match the packages to the current structure since they don't use nuspec files

Akavache = core + Sql with no dll
AkavacheCore
AkavacheSql

Haven't really tried too hard yet though. Maybe just a dummy csproj file that doesn't make a dll?
Not sure

either way if you pull it down and run build.cmd it'll make up a SqlLite package you can install

@ahmedalejo
Copy link

Hi is this still a no show?
conflicting versions of System.Reactive 3.0 and Rx-Main packages

@PureWeen
Copy link
Collaborator

PureWeen commented Sep 4, 2017

@ahmedalejo
Copy link

Thanks @PureWeen for the heads up.
I'll give it a short and get back to you.

@EmilAlipiev
Copy link

EmilAlipiev commented Nov 4, 2017

@PureWeen I cant install it. error is always. why is that dependency? it is not exist in 5.0 version

Failed to add reference. The package 'akavache.core' tried to add a framework reference to 'System.IdentityModel' which was not found in the GAC. This is possibly a bug in the package. Please contact the package owners for assistance.
Reference unavailable.

@PureWeen
Copy link
Collaborator

PureWeen commented Nov 4, 2017

Hmm I haven't seen that error before... Have you tried this on a new project just to see if it works there? What's target platform of the project you are trying to add Akavache into?

@EmilAlipiev
Copy link

I am trying it on xamarin forms project using PCL 259. I have been using akavache more than year on 5.0 but recently added another package which requires RX 3.1. thats why i needed to upgrade to 6 alpha but unfortunately struggling with this error now.

@PureWeen
Copy link
Collaborator

PureWeen commented Nov 4, 2017

That profile includes some pretty old frameworks

Profile 259 (.NET Framework 4.5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8)

If you're going to be moving to newer packages you would probably have the most success by converting your PCL project to a NetStandard project

Most newer libraries aren't going to be able to support PCL much longer and lots of them don't really support down to WP8 (thought Xam Form still does :-p )

@EmilAlipiev
Copy link

unfortunately I cant convert to net standard yet because of some of major libraries doesnt support it yet. anyhow I just found out that this error occurs only for IOS project in my solution. I was able to install on android, uwp and pcl projects but not IOS.

@PureWeen
Copy link
Collaborator

PureWeen commented Nov 4, 2017

hmm that seems odd that iOS would have that issue... If you create a new fresh iOS project and try to add it into there does it work?

@sirimanu
Copy link

I have upgrade forms project to NetStandard and then encountered issue with new version of Rx. And then upgraded Akavache from 5.0 to 6.0-alpha. The issue got fixed in the PCL project but I still see the issue in iOS and Droid projects.
Error CS0433: The type 'Unit' exists in both 'System.Reactive.Core, Version=2.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' and 'System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263' (CS0433)

Appreciate your help.

@sirimanu
Copy link

Still seeing the issue in platform specific projects even after upgrading Akavache to 6.0-alpha. Any workaround?

@PureWeen
Copy link
Collaborator

PureWeen commented Jul 26, 2018

The type 'Unit' exists in both 'System.Reactive.Core, Version=2.2.4.0

Makes it sound like you still have an older version of System.Reactive sitting around

You should make sure to have version 3.1.1
https://www.nuget.org/packages/System.Reactive/3.1.1
of system.reactive installed into all your projects
as well as things like
https://www.nuget.org/packages/System.Reactive.Core/3.1.1

Reactive Extensions (Rx) Main Library combining the interfaces, core, LINQ, and platform services libraries.
Reactive Extensions (Rx) Core Library containing base classes and scheduler infrastructure.

@sirimanu
Copy link

sirimanu commented Jul 26, 2018

@PureWeen Thanks for looking into the issue. I don't have any of these System.Reactive.* nuget packages installed in my NET standard project or in the platform specific project. I have recently upgraded Xamarin forms PCL project to NET standard 2.0 and upgraded ReactiveUI.Xamforms to 8.3.1 and Xamarin forms to 3.1. Then upgraded Akavache.Sqlite from 5.0.0 to 6.00-alpha as suggested in the above posts. Still seeing this build error. Did I miss something here?

@PureWeen
Copy link
Collaborator

@sirimanu maybe try deleting your bin/obj folder and rebuilding

The type 'Unit' exists in both 'System.Reactive.Core, Version=2.2.4.0,

tells me that somewhere in projects there's something that's pulling in an older version of the Reactive libraries

@sirimanu
Copy link

sirimanu commented Jul 26, 2018

@PureWeen I have tried deleting the obj/bin and rebuilding, but dint work. I suspect this has to do something with Akavache upgrade only. I reverted all NET standard related changes and now I am back to the PCL project again with Xamarin.Forms version 2.5.1.444934 and reactive-xamfroms version 7.4.0. With this I have upgraded Akavache from 5.0.0 to 6.0.0-alpha0038. I have deleted all bin/obj folder and rebuild the project. I am still seeing the same error.
The type 'Unit' exists in both 'System.Reactive.Core, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' and 'System.Reactive.Core, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263'

@mms-
Copy link
Contributor

mms- commented Jul 26, 2018

Curious, why not use System.Reactive 4.0?

@sirimanu
Copy link

@PureWeen Sorry, my bad. Upgrading Fusillade which was pointing to older version of system.Reactive fixed the issue. Thanks for your help.

@PureWeen
Copy link
Collaborator

@mms-
Timing really.. Alpha has been out for some time and 4.0 wasn't out yet and I haven't upgraded things to 4.0 yet. I don't remember the specifics but there was also a bug with PackageReference which is why the Reactive nugets got pinned to < 4.0

ReactiveUI was like that for some time sa well

That being said it looks like ReactiveUI has now removed that pinning so it looks like we could do the same here with Akavache

@glennawatson
Copy link
Contributor

Those pack reference issues were fixed when Oren did the release recently thankfully.

@jBijsterboschNL
Copy link

Are there any plans on upgrading to System.Reactive = 4.0?

@glennawatson
Copy link
Contributor

glennawatson commented Oct 17, 2018

Both Akavache and ReactiveUI are waiting for this issue to be resolved dotnet/reactive#803 before upgrading above System.Reactive 4.0.

Akavache is already at System.Reactive 4 though. Are you using version 6.0.27?

@lock lock bot added the outdated label Jun 24, 2019
@lock lock bot locked and limited conversation to collaborators Jun 24, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests