AWSSDK Version

Aug 20, 2010 at 1:15 PM

Hi 

Just a question: why is Simple Savant referencing the older 1.09 Version of the AWSSDK? I've got 1.0.11 on my machine but I am forced to use the older version due to SimpleSavant :)

Cheers,

Oliver

Coordinator
Aug 20, 2010 at 2:41 PM

There is a reason for this: Savant 0.5.1 was released about 1 month before AWSSDK 1.0.11! :)

If the AWSSDK assembly wasn't strong-name signed you could simply drop in the new version and go since Savant itself doesn't explicitly reference 1.0.9. But you still are not "forced" to use the older version. You could:

  1. Rebuild Savant against the new AWSSDK.
  2. Add an assembly binding redirect to your application config to force the .NET runtime to load the new version:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="AWSSDK"
                                  publicKeyToken="cd2d24cd2bace800"
                                  culture="neutral"/>
                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0"
                                 newVersion="1.0.11.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Apr 3, 2011 at 4:06 AM

I tried using the assembly binding redirect with AWSSDK 1.3.3.1, but when instantiating SimpleSavant, I get an exception: "Method 'BeginCreateDomain' in type 'Coditate.Savant.Core.ConsistentSimpleDB' from assembly 'Coditate.Savant, Version=0.5.1.0, Culture=neutral, PublicKeyToken=null' does not have an implementation." (It works properly when I use the bundled AWSSDK 1.0.9.0.)

Coordinator
Apr 4, 2011 at 2:18 AM

That's because Savant contains an interface implementation from the AWS library and the library interface has changed to include the new async BeginXXX methods. You'll need to patch the Savant source code to include those new methods or wait until I get out a release with those changes.