Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Lee Kelleher 4020 posts 15802 karma points MVP 13x admin c-trib
    Jan 03, 2010 @ 22:06
    Lee Kelleher
    0

    Update CookComputing.XmlRpcV2.dll?

    Does anyone know if it's possible to update the "CookComputing.XmlRpcV2.dll" library in Umbraco v4.0.3? (from it's current version v2.2.0.4 to v2.3.2.0)

    Reason being that I am working on a new package that integrates Umbraco with WordPress... and to do that I'm using a 3rd-party library called JoeBlogs.

    JoeBlogs uses a later version of CookComputing.XmlRpcV2, but when I try to copy the new DLL across I get this error...

    Could not load file or assembly 'CookComputing.XmlRpcV2, Version=2.2.0.4, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    Highlighting one of the HttpHandlers as the cause of the error:

    <add verb="*" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />

     

    I looked into doing a bit of "bindingRedirect", but started to get confused with how it should work...! :-$

    Here's what I tried:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="CookComputing.XmlRpcV2" publicKeyToken="a7d6e17aa302004d" culture="neutral" />
                <bindingRedirect oldVersion="2.2.0.4" newVersion="2.3.2.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

     

    ... so it is possible to update the "CookComputing.XmlRpcV2.dll" library?

    Thanks in advance, Lee.

  • Lee Kelleher 4020 posts 15802 karma points MVP 13x admin c-trib
    Jan 03, 2010 @ 22:08
    Lee Kelleher
    0

    Forgot to mention... my fall-back on this is to recompile the JoeBlogs code with the same version of "CookComputing.XmlRpcV2" as Umbraco uses (v2.2.0.4) ... but then concerned about having to maintain different versions for future Umbraco releases? (i.e. v4.1)

  • Stefan Kip 1614 posts 4131 karma points c-trib
    Jan 03, 2010 @ 22:15
    Stefan Kip
    0

    Or if the assemblyBinding doesn't work, you could also recompile the new CookComputing.XmlRpcV2 assembly with a different namespace, so you can use the different namespace version in the JoeBlogs project...

  • Lee Kelleher 4020 posts 15802 karma points MVP 13x admin c-trib
    Jan 03, 2010 @ 22:29
    Lee Kelleher
    0

    Thanks kipusoep, I had that thought too... but didn't want to get my hands dirty with messing around with XmlRpcV2 code.

    I know you can have multiple versions of DLLs (side-by-side) in the GAC, but that doesn't sound like a good solution for a re-distributable Umbraco package, (not every one has access to the GAC!)

    So far I've gone with re-compiling the JoeBlogs codebase against the v2.2.0.4 XmlRpcV2 (as shipped with Umbraco v4.0.3) ... Not too happy about forking off JoeBlogs thought ... keeping in-sync with future developments could be a headache!

    I'm open to all suggestions.

    Thanks, Lee.

  • Jamie Howarth 306 posts 773 karma points c-trib
    Jan 04, 2010 @ 00:00
    Jamie Howarth
    1

    Lee,

    I've recompiled Umbraco (my Medium Trust build) to use XMLRPC.Net 2.4.x, which you can get from here. The hack if you don't fancy recompiling the core is to use an assemblyRedirect, as per your OP, I think the format is correct, but I'd suggest replacing "2.2.0.4" with "2.0.*.*-2.3.*.*".

    Assembly binding redirects accept wildcards and ranges of assembly versions, so you can bulk-redirect anything below v2.4, which is the latest recommended build.

    Hope this helps.

    Benjamin

  • Lee Kelleher 4020 posts 15802 karma points MVP 13x admin c-trib
    Jan 04, 2010 @ 22:28
    Lee Kelleher
    0

    Benjamin,

    Not much joy with the "bindingRedirect" ... I've tried all sorts of combinations of "oldVersion", "publicKeyToken", etc. (wildcards, ranges)

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="CookComputing.XmlRpcV2" publicKeyToken="a7d6e17aa302004d" culture="neutral" />
            <bindingRedirect oldVersion="2.2.0.4-2.3.2.0" newVersion="2.4.0.0" />
        </dependentAssembly>
    </assemblyBinding>

    My gut feeling is that v2.2.0.4 has "publicKeyToken=null" and later versions have "publicKeyToken=a7d6e17aa302004d". Does that sound like a cause?

    Side note: This isn't stopping me from continuing development with my package/plug-in ... but it does prevent me from releasing it "into the wild".

    Maybe I'll hold-off until Umbraco v4.1 is out... when this should no longer be a problem! (or that's it only compatible with your Medium Trust edition?)

    Thanks again, Lee.

  • Aaron Powell 1708 posts 3046 karma points c-trib
    Jan 04, 2010 @ 22:41
    Aaron Powell
    1

    You can put in a new version of the CookComputing DLL easily if you remove the HttpHandlers which try and use it. They are just the channels ones. I've done it before ;)

    But yes, I can expect the problem being with the publicKeyToken not being previously set.

  • Mitchell 23 posts 43 karma points
    Aug 03, 2010 @ 07:51
    Mitchell
    0

    I am running into this issue with YAF...

  • Alex Norcliffe 222 posts 287 karma points
    Dec 15, 2010 @ 16:49
    Alex Norcliffe
    0

    Did you ever solve this? The 'name' attribute of <assemblyIdentity> is the only one which is required.

  • Mitchell 23 posts 43 karma points
    Dec 16, 2010 @ 18:07
    Mitchell
    0

    Deploy one to the GAC and leave the other in the bin folder

  • Asif Malik 203 posts 339 karma points
    Jun 21, 2011 @ 11:56
    Asif Malik
    0

    Hi sorry to be posting to such an old post. Did anyone come up with an alternative way to get this to work without having to install to the GAC ? Does anyone know the version used in Umbraco is going to be upgraded ?

  • Ansar 181 posts 291 karma points
    Feb 01, 2012 @ 21:37
    Ansar
    0

    @Lee - did you able to solve this? I am trying to find a solution for the same issue.. I need to use MailChimp DLL in my project and its throwing 

    Unable to load one or more of the types in assembly 'umbraco, Version=1.0.4281.20201, Culture=neutral, PublicKeyToken=null'. Exceptions were thrown:

    System.IO.FileLoadException: Could not load file or assembly 'CookComputing.XmlRpcV2, Version=2.2.0.4, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    Tried bindingRedirect but not working!

  • Lee Kelleher 4020 posts 15802 karma points MVP 13x admin c-trib
    Feb 02, 2012 @ 13:54
    Lee Kelleher
    3

    Hi Anz,

    Believe it or not, I've just come across this problem again (this morning!)

    The only way I can find around this is to have 2 copies of the assembly, with the 2nd in a sub-directory, then you can redirect via assembly binding:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="CookComputing.XmlRpcV2" publicKeyToken="a7d6e17aa302004d" />
                <codeBase version="2.2.0.4" href="bin\CookComputing.XmlRpcV2.dll" />
                <codeBase version="2.5.0.0" href="bin\YAF\CookComputing.XmlRpcV2.dll" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

    You'll probably already have other items in your "runtime/assemblyBinding" section, so just add the "dependentAssembly" segment to your existing one.

    You can call the sub-directory whatever you like, I've called it "YAF" as I'm doing a tight integration with YAF at the moment.

    Cheers, Lee.

  • Ansar 181 posts 291 karma points
    Feb 18, 2012 @ 07:45
    Ansar
    0

    Hey Lee.. It worked great.... thanks alot :)

  • Dmitriy Skudnov 39 posts 64 karma points
    Oct 06, 2012 @ 10:47
    Dmitriy Skudnov
    0

    Hi Lee.

    Thank you for sharing. It help me.

    BR, Dmitriy

  • Brendan Rice 537 posts 1098 karma points
    Oct 14, 2012 @ 15:16
    Brendan Rice
    0

    Nice one Lee, had to use this trick a couple of time on an upgrade, good to know for the future where I have had to get the source of projects and compile them againt the correct version of CookComputing...

  • Nigel Wilson 944 posts 2076 karma points
    Nov 05, 2012 @ 23:27
    Nigel Wilson
    0

    Hi Lee

    Not sure if you can assist, but I have added the dependentAssembly in the web.config as detailed. My code is:

    <dependentAssembly>
                <assemblyIdentity name="CookComputing.XmlRpcV2" publicKeyToken="a7d6e17aa302004d" />
                <codeBase version="2.2.0.4" href="bin\site\CookComputing.XmlRpcV2.dll" />
                <codeBase version="2.5.0.0" href="bin\CookComputing.XmlRpcV2.dll" />
    </dependentAssembly>

    By clicking on the DLL files and opening the object browser I can see the version numbers and confirm the 2.2.0.4 is in the site folder and the 2.5.0.0 is in the bin folder.

    But I continue to get the following error:

    Unable to load one or more of the types in assembly 'PerceptiveMCAPI, Version=1.2.4.2, Culture=neutral, PublicKeyToken=null'. Exceptions were thrown:
    System.IO.FileLoadException: Could not load file or assembly 'CookComputing.XmlRpcV2, Version=2.2.0.4, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)


    Any suggestions - I am pulling my hair out over this.... 

    Cheers, Nigel

  • Brendan Rice 537 posts 1098 karma points
    Nov 05, 2012 @ 23:31
    Brendan Rice
    2

    I ran into similar problems Nigel, some of the legacy code I was working with (mailchimp related) had dlls in the bin folder that referenced the CookComputing dll, if I remember right.

    What I had to do was put the 2.5.0.0 into a new folder and put the old dll in the main bin then chance the paths for the dependantAssembly codeBase to reflect these changes.

    Hopefully this willl work for you.

  • Nigel Wilson 944 posts 2076 karma points
    Nov 06, 2012 @ 00:06
    Nigel Wilson
    0

    Hi Brendan

    You must be up late...

    Thanks for your prompt response - being "down under" I hadn't expected such a prompt response. :-)

    I have swapped them round and ka ching - the site is running again - fan-damn-tastic I say !

    Thanks for your suggestion - very much appreciated.

    Cheers, Nigel

  • Brendan Rice 537 posts 1098 karma points
    Nov 06, 2012 @ 00:09
    Brendan Rice
    0

    No worries glad it worked :)

  • Bobi 346 posts 950 karma points
    May 04, 2018 @ 18:03
    Bobi
    0

    Hi, I'm getting a similar error:

    Could not load all types from "Articulate, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null" due to LoaderExceptions, skipping: . System.IO.FileLoadException: Could not load file or assembly 'CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    How exactly can I fix this, and why does this happen? It seems to happen out of no where...my localhost site works fine, then when I shut down and come back a few days later, I get the above error...how can I fix this?

  • Nawaz 21 posts 74 karma points
    Aug 23, 2019 @ 13:42
    Nawaz
    0

    Check your /bin folder has the cookComputting dll if not download from https://www.nuget.org/packages/CookComputing.XmlRPCv2

Please Sign in or register to post replies

Write your reply to:

Draft